Subject: PostgreSQL 14 Beta 1 release announcement draft

From: "Jonathan S. Katz" <[email-masked]>
Date: Mon, 17 May 2021 10:15:56 -0400

Hi,

Please see the attached draft for the PostgreSQL 14 Beta 1 release
announcement this week.

As with the past beta releases, the primary goal of this announcement is
to make the public aware of the beta release and encourage testing. The
announcement serves as a springboard for feature awareness and to
inspire real world (or equivalent) testing.

Note that this announcement is not ranking the features in any
particular way, and while it's exciting to see all the new features
going into PostgreSQL 14, we cannot include all of them in the announcement.

Please review the announcement for technical inaccuracies and notable
feature omissions, and please provide feedback no later than Wed, May 19
AoE[1]

Thanks!

Jonathan

[1] https://en.wikipedia.org/wiki/Anywhere_on_Earth

---

From: Erik Rijkers <[email-masked]>
Date: Mon, 17 May 2021 17:01:47 +0200

> Please see the attached draft for the PostgreSQL 14 Beta 1 release

[..]

Here are a few changes:

when the `async_capable` flag is it.  should be:

when the `async_capable` flag is set.

can on foreign tables.   should be:
on foreign tables.

using the `JSONB` data type with,   should be:  
using the `JSONB` data type,

Admittedly I am not a native speaker but that I do not understand

'bubble' is perhaps reason to rephrase?

command in can now   should be:
command can now

Thank you,

Erik Rijkers

---

From: Justin Pryzby <[email-masked]>
Date: Mon, 17 May 2021 12:24:10 -0500

On Mon, May 17, 2021 at 10:15:56AM -0400, Jonathan S. Katz wrote:
> This release has significant improvements in transaction throughput in
> PostgreSQL systems that have large numbers of connections to the database,
> regardless if they are active or idle.

regardless of whether
(I think)

> indexes. [GiST indexes](https://www.postgresql.org/docs/14/indexes-types.html#INDEXES-TYPE-GIST)
> can now use pre-sorted data during their build process, allowing both for faster
> index creation and smaller indexes.

Instead of "use pre-sorted" I think it should say "can now pre-sort.."

> [SP-GiST indexes](https://www.postgresql.org/docs/14/indexes-types.html#INDEXES-TYPE-SPGIST)
> now support [covering indexes](https://www.postgresql.org/docs/14/indexes-index-only-scans.html)
> that allow users to add additional, nonsearchable columns to the index through
> the `INCLUDE` clause.

*in the index

> PostgreSQL 14. This new release adds more capabilities to [extended statistics](https://www.postgresql.org/docs/14/planner-stats.html),
> which can now be used on [expressions](https://www.postgresql.org/docs/14/view-pg-stats-ext-exprs.html).

can be *created on expressions

> PostgreSQL has supported compression on its "oversized data" columns (i.e. the
> [TOAST](https://www.postgresql.org/docs/14/storage-toast.html) system) for
> decades, but this release adds the ability to now choose to use
> [LZ4 compression](https://www.postgresql.org/docs/14/sql-createtable.html) on
> tables.

say "on TOAST tables", otherwise it sounds like what's new is "tables"
rather than "LZ4".

> PostgreSQL 14 includes numerous improvements on what information can be
> monitored, including the ability to track progress on `COPY` using the
> [`pg_stat_progress_copy`](https://www.postgresql.org/docs/14/progress-reporting.html#COPY-PROGRESS-REPORTING)
> view. This release lets WAL activity be tracked from the [`pg_stat_wal`](https://www.postgresql.org/docs/14/monitoring-stats.html#MONITORING-PG-STAT-WAL-VIEW)

"allows WAL activity to be tracked"

> The [`REINDEX`](https://www.postgresql.org/docs/14/sql-reindex.html) command in

in *PostgreSQL 14

> of waiting for them to be completed. The [`ALTER SUBSCRIPTION`](https://www.postgresql.org/docs/14/sql-altersubscription.html)
> makes it easier to add/remove publications using the new `ADD/DROP PUBLICATION`]
> syntax.

missing "command"

> PostgreSQL 14 now adds a general subscripting framework for retrieving

remove "now"

As usual, Erik already reported half of my typos ;)

-- 
Justin

---

From: Peter Geoghegan <[email-masked]>
Date: Mon, 17 May 2021 12:32:57 -0700

> feature omissions, and please provide feedback no later than Wed, May 19

I think that the B-Tree item (bottom-up index deletion) would benefit
from a link to the documentation that describes the feature, for those
that want to drill down:

https://www.postgresql.org/docs/14/btree-implementation.html#BTREE-DELETION

(Though see https://www.postgresql.org/docs/devel/btree-implementation.html#BTREE-DELETION
for the devel version, which is the only version available from the
website at this time.)

-- 
Peter Geoghegan

---

From: Darren Duncan <[email-masked]>
Date: Mon, 17 May 2021 15:26:25 -0700

On 2021-05-17 7:15 a.m., Jonathan S. Katz wrote:
> AoE
For my part the new "datemultirange" data type stood out to me as a very useful 
functional improvement, and I support the release announcement and major 
features documentation continuing to mention it rather than dropping it for 
something else. -- Darren Duncan

---

From: "Jonathan S. Katz" <[email-masked]>
Date: Mon, 17 May 2021 21:01:28 -0400

> Please see the attached draft for the PostgreSQL 14 Beta 1 release

Thanks for the initial round of feedback! I have incorporated some of
the suggestions directly, adapted some accordingly, and rejected ones
that were either incorrect or personal preference (such as the editing
process goes). Credit is given in the commit on the press repo.

I have attached the current state of the draft.

Again, please provide feedback no later than Wed, May 19 AoE[1].

Thanks,

Jonathan

---

From: Amit Kapila <[email-masked]>
Date: Tue, 18 May 2021 08:10:12 +0530

> I have attached the current state of the draft.

Few minor comments:

* and inspect replication slot statuses from the [`pg_stat_replication_slots`]
In the above sentence, do you want to say statistics instead of statuses?

* PostgreSQL 14 adds numerous performance benefits for logical
replication, including the ability to stream in-process transactions
I think in the above sentence, instead of in-process it should be in-progress

-- 
With Regards,
Amit Kapila.

---

From: SAS <[email-masked]>
Date: Tue, 18 May 2021 08:43:37 +0200

> [1] https://en.wikipedia.org/wiki/Anywhere_on_Earth

Hello,

I think the verb has been lost between first and second release of the draft:

    This release has significant improvements in transaction throughput for
    PostgreSQL systems that have large numbers of connections to the database,
    /regardless if they in an active or idle state./

S.
//

-- 
Dr Stéphane Schildknecht
Contact régional PostgreSQL pour l'Europe francophone
+33 617 11 37 42

---

From: Erik Rijkers <[email-masked]>
Date: Tue, 18 May 2021 12:33:24 +0200

14beta1.md mentions subscripting:

"PostgreSQL 14 now adds a general subscripting framework for retrieving
information in nested objects. For example, using the `JSONB` data type 
with,
you now are able to retrieve nested info just using the `.` operator (e.g.
`this.now.works.to.retrieve.this.json.data`)."

Is this correct?  I thought the provided JSON subscripting functionality is:

select
     jsonb_pretty(js)
   , js['this']
   , js['this']['now']
   , js['this']['now']['works']
   , js['this']['now']['works'][1]
from
   (values ('{"this": { "now": {"works": [1,2] } } }'::jsonb)) as f(js)
;
       jsonb_pretty      |             js             | js         |   
js   | js
------------------------+----------------------------+-------------------+--------+----
  {                     +| {"now": {"works": [1, 2]}} | {"works": [1, 
2]} | [1, 2] | 2
      "this": {         +| |                   |        |
          "now": {      +| |                   |        |
              "works": [+| |                   |        |
                  1,    +| |                   |        |
                  2     +| |                   |        |
              ]         +| |                   |        |
          }             +| |                   |        |
      }                 +| |                   |        |
  }                      | |                   |        |
(1 row)

Where can the `.` operator be used in JSON(B)? What did I miss?

Erik Rijkers

On 5/17/21 5:01 PM, Erik Rijkers wrote:
> using the `JSONB` data type with,   should be:  using the `JSONB` data 
> type,
>
>

---

From: "Jonathan S. Katz" <[email-masked]>
Date: Tue, 18 May 2021 17:11:31 -0400

> Is this correct?  I thought the provided JSON subscripting functionality

Oops -- great catch, that's 100% on me and my failure to read/test. I'll
get a modified example into the announcement.

Thanks,

Jonathan

---

From: "Jonathan S. Katz" <[email-masked]>
Date: Tue, 18 May 2021 22:08:22 -0400

> get a modified example into the announcement.

Updated, along with comments from earlier today. Latest draft attached.
Review credit given in the press repo.

Thanks!

Jonathan

---

From: "Jonathan S. Katz" <[email-masked]>
Date: Thu, 20 May 2021 09:49:15 -0400

> Review credit given in the press repo.

The PostgreSQL 14 beta release announcement is live:

https://www.postgresql.org/about/news/postgresql-14-beta-1-released-2213/

Thank you everyone for your feedback!

Jonathan