PostgreSQL 16 includes a set of features related to JSON to make the engine more compliant with the SQL standard. One of these features has been introduced by the following commit: commit: 6ee30209a6f161d0a267a33f090c70c579c87c00 author: Alvaro Herrera <alvherre@alvh.no-ip.org> date: Fri, 31 Mar 2023 22:34:04 +0200 SQL/JSON: support the IS JSON predicate This patch introduces the SQL standard IS JSON predicate. It operates on text and bytea values representing JSON, as well as on the json and...| Michael Paquier - PostgreSQL committer
PostgreSQL lightweight-lock manager, with its interface in src/include/storage/lwlock.h, is a facility aimed at controlling the access to shared memory data structures. One set of routines is at the center of this post: LWLockUpdateVar() LWLockWaitForVar() LWLockReleaseClearVar() These are the least popular APIs related to lightweight locks used in the PostgreSQL core code, being only used by the WAL insertion code to control the locking around the backends doing the insertion of WAL records ...| Michael Paquier - PostgreSQL committer
A feature has been committed in Postgres 16 for libpq to bring more filtering capabilities over the authentication methods authorized on a new connection. Here is the commit: commit: 3a465cc6783f586096d9f885c3fc544d82eb8f19 author: Michael Paquier <michael@paquier.xyz> date: Tue, 14 Mar 2023 14:00:05 +0900 libpq: Add support for require_auth to control authorized auth methods The new connection parameter require_auth allows a libpq client to define a list of comma-separated acceptable authent...| Michael Paquier - PostgreSQL committer
The SCRAM-SHA-256 authentication protocol, defined by RFC 7677 and available since PostgreSQL 10, uses SCRAM secrets. There are used during authentication as equivalents of passwords and stored in pg_authid, shaped based on RFC 5803 for LDAP. This format can be described as a string made of: <SCRAM mechanisms>$<iterations>:<salt>$<stored key>:<server key> For all the details regarding that, feel free to look at the RFCs quoted above. When it comes to SCRAM-SHA-256 in PostgreSQL, the mechanism...| Michael Paquier - PostgreSQL committer
The third and last phase of the improvements done in PostgreSQL 16 for authentication configuration involves both pg_hba.conf and pg_ident.conf, mainly with this commit: commit: a54b658ce77b6705eb1f997b416c2e820a77946c author: Michael Paquier <michael@paquier.xyz> date: Thu, 24 Nov 2022 13:51:34 +0900 Add support for file inclusions in HBA and ident configuration files pg_hba.conf and pg_ident.conf gain support for three record keywords: - "include", to include a file. - "include_if_exists", ...| Michael Paquier - PostgreSQL committer
The second phase of the improvements done in PostgreSQL 16 for authentication configuration involve pg_ident.conf, mainly with this commit: commit: efb6f4a4f9b627b9447f5cd8e955d43a7066c30c author: Michael Paquier <michael@paquier.xyz> date: Fri, 20 Jan 2023 11:21:55 +0900 Support the same patterns for pg-user in pg_ident.conf as in pg_hba.conf While pg_hba.conf has support for non-literal username matches, and this commit extends the capabilities that are supported for the PostgreSQL user lis...| Michael Paquier - PostgreSQL committer
Postgres 15 has a release note page full of items, and this commit is one of the fun parts from the point of view of a hacker: commit: 5c279a6d350205cc98f91fb8e1d3e4442a6b25d1 author: Jeff Davis <jdavis@postgresql.org> date: Wed, 6 Apr 2022 22:26:43 -0700 Custom WAL Resource Managers. Allow extensions to specify a new custom resource manager (rmgr), which allows specialized WAL. This is meant to be used by a Table Access Method or Index Access Method. Prior to this commit, only Generic WAL wa...| Michael Paquier - PostgreSQL committer
This post begins with this commit added to Postgres 16: commit: daa8365a900729fe2a8d427fbeff19e763e35723 author: Michael Paquier <michael@paquier.xyz> date: Wed, 8 Mar 2023 15:00:50 +0900 Reflect normalization of query strings for utilities in pg_stat_statements Applying normalization changes how the following query strings are reflected in pg_stat_statements, by showing Const nodes with a dollar-signed parameter as this is how such queries are structured internally once parsed: - DECLARE - E...| Michael Paquier - PostgreSQL committer
PostgreSQL 16 will normally, as there is always a risk of seeing something reverted in the beta phase, include this commit: commit: 8fea86830e1d40961fd3cba59a73fca178417c78 author: Michael Paquier <michael at paquier xyz> date: Mon, 24 Oct 2022 11:45:31 +0900 Add support for regexps on database and user entries in pg_hba.conf As of this commit, any database or user entry beginning with a slash (/) is considered as a regular expression. This is particularly useful for users, as now there is no...| Michael Paquier - PostgreSQL committer
Postgres 14 highlight - Monitoring for COPY| paquier.xyz