From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | "Jonathan S(dot) Katz" <jkatz(at)postgresql(dot)org>, Peter Geoghegan <pg(at)bowt(dot)ie> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: PostgreSQL 12 Beta 1 press release draft |
Date: | 2019-05-22 19:44:38 |
Message-ID: | 20190522194438.v5jas2czczld2bcu@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
> ### 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.
I'm not sure everyone will understand bloating as a term? Perhaps just
saying 'also reduce index size when the index is modified frequently' or
such?
> ### 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
> 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;
> ```
Wouldn't it be more important to reference how they can be *forced* to
be materialized? Because that'll be what users will need. And I think if
we reference NOT MATERIALIZED it also sounds like CTEs will not
automatically inlined ever.
> ### 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.
I think s/which is currently the only supported method/which currently
is the only built-in method/ or such would be good. I don't know what
"supported" would actually mean here.
> ### 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
> PostgreSQL was compiled with OpenLDAP.
Is this really accurately categorized under authentication? Because it's
really ongoing encryption, as an alternative to tls?
> 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.
I think we should probably list the removal of WITH OIDs.
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Donald Dong | 2019-05-22 19:53:56 | Re: Why could GEQO produce plans with lower costs than the standard_join_search? |
Previous Message | Tom Lane | 2019-05-22 19:27:18 | Re: pgindent run next week? |