Re: bogus error message for ALTER TABLE ALTER CONSTRAINT
Amul Sul <sulamul@gmail.com>
From: Amul Sul <sulamul@gmail.com>
To: Álvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Pg Hackers <pgsql-hackers@lists.postgresql.org>, Peter Eisentraut <peter@eisentraut.org>,
Nathan Bossart <nathandbossart@gmail.com>
Date: 2025-03-11T11:08:20Z
Lists: pgsql-hackers
Attachments
- v2-0001-trial.patch (application/octet-stream) patch v2-0001
On Tue, Mar 11, 2025 at 1:56 PM Álvaro Herrera <alvherre@alvh.no-ip.org> wrote: > > On 2025-Mar-11, Amul Sul wrote: > > > On Mon, Mar 10, 2025 at 11:29 PM Álvaro Herrera <alvherre@alvh.no-ip.org> wrote: > > > > > I fleshed this out more fully and I think 0001 is good enough to commit. > > > > The approach looks good to me, but instead of adding a CAS_flags struct, could > > we use macros like SEEN_DEFERRABILITY(bits), SEEN_ENFORCEABILITY(bits), > > etc.? We can simply pass cas_bits to these macros, and to avoid the error > > from processCASbits(), we can pass NULL for constrType. > > Ah yeah, I thought of this too at first, but didn't actually code it > because I thought it'd be messier. Trying to do it naively doesn't > work, because it's not enough to test whether each bit is true or false > -- what you need to know is whether an option was specified for each > bit, in either direction. So we'd need a separate bitmask, we can't > pass the existing 'bits' mask. And at that point, it's not any better > to have a bitmask, and a stack-allocated struct of booleans is just > easier to write. > I was thinking of something like the attached, which includes your test cases from 0001. Perhaps the macro name could be improved. Regards, Amul
Commits
-
Fix bogus grammar for a CREATE CONSTRAINT TRIGGER error
- 87251e114967 19 (unreleased) landed
-
Fix ALTER TABLE error message
- bf1e2d2db510 15.13 landed
- 9ea5fe5b6c80 16.9 landed
- 931a1c023790 14.18 landed
- 7bbc46213de9 18.0 landed
- 4e026be5f159 17.5 landed
- 0f354e0805ed 13.21 landed