Find some corrections inline. On Tue, May 21, 2019 at 11:39:38PM -0400, Jonathan S. Katz wrote: > PostgreSQL 12 Beta 1 Released > ============================= > > The PostgreSQL Global Development Group announces that the first beta release > of > PostgreSQL 12 is now available for download. This release contains previews of > all features that will be available in the final release of PostgreSQL 12, > though some details of the release could change before then. > > In the spirit of the open source PostgreSQL community, we strongly encourage > you > to test the new features of PostgreSQL 12 in your database systems to help us > eliminate any bugs or other issues that may exist. While we do not advise for > you to run PostgreSQL 12 Beta 1 in your production environments, we encourage > you to find ways to run your typical application workloads against this beta > release. > > Your testing and feedback will help the community ensure that the PostgreSQL > 12 > release upholds our standards of providing a stable, reliable release of the > world's most advanced open source relational database. > > PostgreSQL 12 Features Highlights > --------------------------------- > > ### Indexing Performance, Functionality, and Management > > PostgreSQL 12 improves the overall performance of the standard B-tree indexes > with improvements to the overall space management of these indexes as well. > These improvements also provide an overall reduction of bloating when using > B-tree for specific use cases, in addition to a performance gain. > > Additionally, PostgreSQL 12 adds the ability to rebuild indexes concurrently, > which lets you perform a > [`REINDEX`](https://www.postgresql.org/docs/devel/sql-reindex.html) operation
> without blocking any writes to the index. The inclusion of this feature should > help with length index rebuilds that could cause potential downtime evens when events > administration a PostgreSQL database in a production environment. > > PostgreSQL 12 extends the abilities of several of the specialized indexing > mechanisms. The ability to create covering indexes, i.e. the `INCLUDE` clause > that was introduced in PostgreSQL 11, have now been added to GiST indexes. has now > SP-GiST indexes now support the ability to perform K-nearest neighbor (K-NN) > queries for data types that support the distance (`<->`) operation. > > The amount of write-ahead log (WAL) overhead generated when creating a GiST, > GIN, or SP-GiST index is also significantly reduced in PostgreSQL 12, which > provides several benefits to the overall disk utilization of a PostgreSQL > cluster as well as using features such as continuous archiving and streaming > replication. > > ### Inlined WITH queries (Common table expressions) > > Common table expressions (aka `WITH` queries) can now be automatically inlined > in a query if they are a) not recursive, b) do not have any side-effects and I think "are" should be rearranged: a) are not recursive > c) are only referenced once in a later part of a query. These removes a known > "optimization fence" that has existed since the introduction of the `WITH` > clause in PostgreSQL 8.4 > > You can force a `WITH` query to be inlined using the `NOT MATERIALIZED` > clause, > e.g. > > ``` > WITH c AS NOT MATERIALIZED ( > SELECT * FROM a WHERE a.x % 4 > ) > SELECT * FROM c JOIN d ON d.y = a.x; > ``` > > ### Partitioning > > PostgreSQL 12 improves on the performance of processing tables with thousands => improves on the performance WHEN processing tables with thousands > of partitions for operations that only need to use a small number of > partitions. > PostgreSQL 12 also provides improvements to the performance of both > using `COPY` with a partitioned table as well as the `ATTACH PARTITION` > operation. Additionally, the ability to use foreign keys to reference => Additionally, the ability for foreign keys to reference partitioned > partitioned tables is now allowed in PostgreSQL 12. > > ### JSON path queries per SQL/JSON specification > > PostgreSQL 12 now lets you execute [JSON path > queries](https://www.postgresql.org/docs/devel/functions-json.html#FUNCTIONS-SQLJSON-PATH) => allows execution of > per the SQL/JSON specification in the SQL:2016 standard. Similar to XPath > expressions for XML, JSON path expressions let you evaluate a variety of > arithmetic expressions and functions in addition to comparing values within > JSON > documents. > > A subset of these expressions can be accelerated with GIN indexes, letting you => allowing execution of > execute highly performant lookups across sets of JSON data. > > ### Collations > > PostgreSQL 12 now supports case-insensitive and accent-insensitive collations > for ICU provided collations, also known as "[nondeterministic > collations](https://www.postgresql.org/docs/devel/collation.html#COLLATION-NONDETERMINISTIC)". > When used, these collations can provide convenience for comparisons and sorts, > but can also lead to a performance penalty depending as a collation may need > to > make additional checks on a string. > > ### Most-common Value Statistics > > [`CREATE > STATISTICS`](https://www.postgresql.org/docs/devel/sql-createstatistics.html), > introduced in PostgreSQL 10 to help collect more complex statistics to improve > query planning, now supports most-common value statistics. This leads to > improved query plans for distributions that are non-uniform. > > ### Generated Columns > > PostgreSQL 12 lets you create [generated > columns](https://www.postgresql.org/docs/devel/ddl-generated-columns.html) > that compute their values based on the contents of other columns. This feature > provides two types of generated columns: > > - Stored generated columns, which are computed on inserts and updated and are > saved on disk > - Virtual generated columns, which are computed only when a column is read as > part of a query > > ### Pluggable Table Storage Interface > > PostgreSQL 12 introduces the pluggable table storage interface that allows for > the creation and use of different storage mechanisms for table storage. New > access methods can be added to a PostgreSQL cluster using the [`CREATE > ACCESS > METHOD`](https://www.postgresql.org/docs/devel/sql-create-access-method.html) > and subsequently added to tables with the new `USING` clause on `CREATE > TABLE`. > > A table storage interface can be defined by creating a new [table access > method](https://www.postgresql.org/docs/devel/tableam.html). > > In PostgreSQL 12, the storage interface that is used by default is the `heap` > access method, which is currently the only supported method. > > ### Page Checksums > > The `pg_verify_checkums` command has been renamed to > [`pg_checksums`](https://www.postgresql.org/docs/devel/app-pgchecksums.html) > and now supports the ability to enable and disable page checksums across an > PostgreSQL cluster that is offline. Previously, page checksums could only be > enabled during the initialization of a cluster with `initdb`. > > ### Authentication > > GSSAPI now supports client and server-side encryption and can be specified in > the > [`pg_hba.conf`](https://www.postgresql.org/docs/devel/auth-pg-hba-conf.html) > file using the `hostgssenc` and `hostnogssenc` record types. PostgreSQL 12 > also > allows for LDAP servers to be discovered based on `DNS SRV` records if => allows discovery of LDAP servers > PostgreSQL was compiled with OpenLDAP. > > Noted Behavior Changes > ---------------------- > > There are several changes introduced in PostgreSQL 12 that can affect the > behavior as well as management of your ongoing operations. A few of these are > noted below; for information about other changes, please review the > "Migrating to Version 12" section of the [release > notes](https://www.postgresql.org/docs/devel/release-12.html). > > 1. The `recovery.conf` configuration file is now merged into the main > `postgresql.conf` file. PostgreSQL will not start if it detects that > `recovery.conf` is present. To put PostgreSQL into a non-primary mode, you can > use the `recovery.signal` and the `standby.signal` files. > > You can read more about [archive > recovery](https://www.postgresql.org/docs/devel/runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY) > here: > > https://www.postgresql.org/docs/devel/runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY > > 2. Just-in-Time (JIT) compilation is now enabled by default. > > Additional Features > ------------------- > > Many other new features and improvements have been added to PostgreSQL 12, > some > of which may be as or more important to specific users than what is mentioned > above. Please see the [Release > Notes](https://www.postgresql.org/docs/devel/release-12.html) for a complete > list of new and changed features. > > Testing for Bugs & Compatibility > -------------------------------- > > The stability of each PostgreSQL release greatly depends on YOUR, the > community, you > to test the upcoming version with your workloads and testing tools in order to > find bugs and regressions before the release of PostgreSQL 12. As this is a Remove: "of PostgreSQL 12" ? > Beta, minor changes to database behaviors, feature details, and APIs are still > possible. Your feedback and testing will help determine the final tweaks on > the > new features, so please test in the near future. The quality of user testing > helps determine when we can make a final release. > > A list of [open > issues](https://wiki.postgresql.org/wiki/PostgreSQL_12_Open_Items) > is publicly available in the PostgreSQL wiki. You can > [report bugs](https://www.postgresql.org/account/submitbug/) using this form > on > the PostgreSQL website: > > https://www.postgresql.org/account/submitbug/ > > Beta Schedule > ------------- > > This is the first beta release of version 12. The PostgreSQL Project will > release additional betas as required for testing, followed by one or more > release candidates, until the final release in late 2019. For further > information please see the [Beta > Testing](https://www.postgresql.org/developer/beta/) page. > > Links > ----- > > * [Download](https://www.postgresql.org/download/) > * [Beta Testing Information](https://www.postgresql.org/developer/beta/) > * [PostgreSQL 12 Beta Release > Notes](https://www.postgresql.org/docs/devel/release-12.html) > * [PostgreSQL 12 Open > Issues](https://wiki.postgresql.org/wiki/PostgreSQL_12_Open_Items) > * [Submit a Bug](https://www.postgresql.org/account/submitbug/) On Wed, May 22, 2019 at 07:05:49AM +0200, Erik Rijkers wrote: > --- 12beta1.md.orig 2019-05-22 06:33:16.286099932 +0200 > +++ 12beta1.md 2019-05-22 06:48:24.279966057 +0200 > @@ -30,12 +30,12 @@ > Additionally, PostgreSQL 12 adds the ability to rebuild indexes concurrently, > which lets you perform a > [`REINDEX`](https://www.postgresql.org/docs/devel/sql-reindex.html) operation > without blocking any writes to the index. The inclusion of this feature > should > -help with length index rebuilds that could cause potential downtime evens > when > -administration a PostgreSQL database in a production environment. > +help with lengthy index rebuilds that could cause potential downtime when > +administrating a PostgreSQL database in a production environment. Should be "administering" > Common table expressions (aka `WITH` queries) can now be automatically > inlined > in a query if they are a) not recursive, b) do not have any side-effects and > -c) are only referenced once in a later part of a query. These removes a known > +c) are only referenced once in a later part of a query. This removes a known I would remove "known".