Re: Collation & ctype method table, and extension hooks

From: Noah Misch <noah(at)leadboat(dot)com>
To: Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: Andreas Karlsson <andreas(at)proxel(dot)se>, pgsql-hackers(at)postgresql(dot)org, Peter Eisentraut <peter(at)eisentraut(dot)org>
Subject: Re: Collation & ctype method table, and extension hooks
Date: 2026-06-30 01:29:19
Message-ID: 20260630012919.78@rfd.leadboat.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Jun 11, 2025 at 10:49:17PM -0700, Jeff Davis wrote:
> Attached v16.

> I plan to commit this soon after branching.

> Subject: [PATCH v16 1/4] Control ctype behavior internally with a method
> table.
>
> Previously, pattern matching and case mapping behavior branched based
> on the provider.
>
> Refactor to use a method table, which is less error-prone and easier
> to hook.

This became refactor commit 5a38104. In a UTF8 database, the commit changed
the behavior of:

SELECT 'café' ILIKE 'caf_' COLLATE "C";

That query reports true in v18, false in v19. I've copied Claude's whole
review for the commit to
https://docs.google.com/document/d/19_xKpKUQlY5N51qbfXyipXs3rqIYEC3qk5oaUDJ48YA/edit?tab=t.0.
Two of its other findings sound potentially important, but I didn't verify
them.

nm

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2026-06-30 01:39:37 Re: IGNORE/RESPECT NULLS can be specified for (prokind == 'f').
Previous Message Daisuke Higuchi 2026-06-30 01:29:07 Re: [PATCH] Fix sequence value may rollback after CREATE DATABASE TEMPLATE with WAL_LOG strategy