From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | jian he <jian(dot)universality(at)gmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: bug when apply fast default mechanism for adding new column over domain with default value |
Date: | 2025-03-02 22:08:39 |
Message-ID: | 3519325.1740953319@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
jian he <jian(dot)universality(at)gmail(dot)com> writes:
> On Sun, Mar 2, 2025 at 7:54 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> I think the fundamental problem here is that StoreAttrDefault
>> shouldn't be involved in this in the first place.
> i've split missingval related code into StoreAttrMissingVal.
Hm, this does nothing to improve the modularity of the affected
code; if anything it's worse than before. (Fools around for
awhile...) I had something more like the attached in mind.
The idea here is to centralize the control of whether we are
storing a missingval or doing a table rewrite in ATExecAddColumn.
StoreAttrMissingVal has nothing to do with pg_attrdef nor does
StoreAttrDefault have anything to do with attmissingval.
I looked briefly at determining the presence of a default
earlier so we could avoid the extra update of pg_attribute
when both those changes need to happen, but I concluded that
it'd take more refactoring than it's worth. The problem is
the logic way down inside AddRelationNewConstraints that
checks for the eventually-cooked default expression just
being a null constant.
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
v3-0001-Fix-broken-handling-of-domains-in-atthasmissing-l.patch | text/x-diff | 16.5 KB |
v3-0002-Remove-now-dead-code-in-StoreAttrDefault.patch | text/x-diff | 10.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Munro | 2025-03-02 22:35:31 | Re: Cannot find a working 64-bit integer type on Illumos |
Previous Message | Tom Lane | 2025-03-02 21:48:08 | Re: 64 bit numbers vs format strings |