Re: support fast default for domain with constraints

From: jian he <jian(dot)universality(at)gmail(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: support fast default for domain with constraints
Date: 2026-01-26 07:52:16
Message-ID: CACJufxG-NQmEutUnsA3q1RV1iT5MWpaj3MSOH4aVo_UNZUA86g@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Sep 1, 2025 at 2:27 PM jian he <jian(dot)universality(at)gmail(dot)com> wrote:
>
> summary of the attached v7.
> v7-0001, v7-00002: preparatory patch.
> v7-0003 adds fast default support for ALTER TABLE ADD COLUMN when the domain has
> non-volatile constraints.
> A table rewrite is still required for domains with volatile constraints.
>
> v7-0004 skip table rewrite (table scan only) for ALTER TABLE ADD
> COLUMN with domains has volatile constraints.
>

Hi.

rebase, and further simplified.

maybe we could perform a table scan for ALTER TABLE ADD COLUMN when the domain
has volatile constraints like v7-0004, avoiding a table rewrite.
However, this approach
feels inelegant, so I do not plan to pursue it.

So, the fast default now applies to domains with non-volatile constraint
expressions only.

Regarding the prior discussion about empty table behavior. This patch is
consistent with the master: not throwing an error if the default would fail the
domain constraints.

--
jian
https://www.enterprisedb.com/

Attachment Content-Type Size
v8-0002-add-function-DomainHaveVolatileConstraints.patch text/x-patch 2.9 KB
v8-0001-Enable-soft-error-handling-in-ExecPrepareExpr-and-ExecInitExpr.patch text/x-patch 3.2 KB
v8-0003-fast-default-for-domain-with-constraints.patch text/x-patch 11.1 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Richard Guo 2026-01-26 08:00:08 Re: Optimize IS DISTINCT FROM with non-nullable inputs
Previous Message Amit Langote 2026-01-26 07:47:31 Re: unnecessary executor overheads around seqscans