Re: Key joins

Joel Jacobson <joel@compiler.org>

From: "Joel Jacobson" <joel@compiler.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: "Arne Roland" <arne.roland@malkut.net>, "Anders Granlund" <anders.granlund.0@gmail.com>, "Andreas Karlsson" <andreas@proxel.se>, "Vik Fearing" <vik@chouppes.com>
Date: 2026-05-29T05:08:47Z
Lists: pgsql-hackers

Attachments

On Fri, May 29, 2026, at 00:13, Joel Jacobson wrote:
> On Thu, May 28, 2026, at 20:47, Joel Jacobson wrote:
>> Hi hackers,
>>
>> This patch implements a new SQL language feature, that we intent to
>> submit as a Change Proposal to the WG 3 SQL committee for the next
>> meeting in Stockholm in June.  We would greatly appreciate any feedback
>> from the community.
...
>> The attached Discussion paper has also been published at https://keyjoin.org
>> with all examples in the paper runnable in the browser using a patched PGLite.

v3 is mostly a rebase over recent master changes.

0001: Serialize routine definition changes with dependency recording
0002: Implement FOR KEY join support
0003: Add information_schema.view_constraint_usage

Changes from v2:

* 0001 was reworked after 2fbb211 added generic dependency locking to
  master.  The patch now only keeps CREATE OR REPLACE FUNCTION /
  ALTER FUNCTION serialization with dependency recording.  This also
  matches the wording change from e2b3573.

* 0002 race tests now expect the generic dependency-locking error path,
  handle stale dependency lookups during proof revalidation, and avoid
  timing-dependent deadlock/injection-point output in the function and
  operator prelock tests.

* cfbot showed the ICU-dependent nondeterministic-collation tests in v2
  failed when such collations were unavailable. Moved to a separate guarded
  key_join_icu test.

* 0003 is unchanged.

/Joel