| From: | jian he <jian(dot)universality(at)gmail(dot)com> |
|---|---|
| To: | Andrew Dunstan <andrew(at)dunslane(dot)net>, Viktor Holmberg <v(at)viktorh(dot)net> |
| Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: support fast default for domain with constraints |
| Date: | 2026-03-12 03:36:19 |
| Message-ID: | CACJufxHomghtudwKpxqbVyy2n+cBPrahJjnpAo2OvRRXN-UE4w@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Thu, Mar 12, 2026 at 3:50 AM Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:
> Also added some tests.
V11 looks good to me.
On Wed, Mar 11, 2026 at 6:34 PM Viktor Holmberg <v(at)viktorh(dot)net> wrote:
>
> I’ve been burned my this issue in the past so would be great if this could get in.
>
> + /*
> + * If the domain has volatile constraints, we must do a table rewrite
> + * since the constraint result could differ per row and cannot be
> + * evaluated once and cached as a missing value.
> + */
> + if (has_volatile)
> + {
> + Assert(has_domain_constraints);
> + tab->rewrite |= AT_REWRITE_DEFAULT_VAL;
> + }
>
> I'm not sure. But seems to me this makes the pre-existing guard for virtual columns
> redundant?
> I mean this code on line 7633:
> if (colDef->generated != ATTRIBUTE_GENERATED_VIRTUAL)
> tab->rewrite |= AT_REWRITE_DEFAULT_VAL;
>
If the first `if (has_volatile)` is false, then
> if (colDef->generated != ATTRIBUTE_GENERATED_VIRTUAL)
> tab->rewrite |= AT_REWRITE_DEFAULT_VAL;
is still reachable.
> Also, perhaps virtual generated columns could use a test?
Virtual generated columns based on domain are not currently supported.
I have a patch for it: https://commitfest.postgresql.org/patch/5725
but it's not doable now because of
https://git.postgresql.org/cgit/postgresql.git/commit/?id=0cd69b3d7ef357f2b43258de5831c4de0bd51dec
You may also be interested in https://commitfest.postgresql.org/patch/5907
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2026-03-12 03:42:28 | Re: Streamify more code paths |
| Previous Message | Mark Wong | 2026-03-12 03:28:14 | Re: updates for handling optional argument in system functions |