Re: Catalog domain not-null constraints
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Dean Rasheed <dean.a.rasheed@gmail.com>
Cc: jian he <jian.universality@gmail.com>,
Aleksander Alekseev <aleksander@timescale.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>,
Alvaro Herrera <alvherre@alvh.no-ip.org>, vignesh C <vignesh21@gmail.com>
Date: 2024-04-08T09:53:40Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix ALTER DOMAIN NOT NULL syntax
- 9895b35cb88e 17.0 landed
-
Catalog domain not-null constraints
- e5da0fe3c22b 17.0 landed
-
Add tests for domain-related information schema views
- 9578393bc513 17.0 landed
Attachments
- v2-0001-Fix-ALTER-DOMAIN-NOT-NULL-syntax.patch (text/plain) patch v2-0001
On 21.03.24 12:23, Peter Eisentraut wrote: >> All the examples in the tests append "value" to this, presumably by >> analogy with CHECK constraints, but it looks as though anything works, >> and is simply ignored: >> >> ALTER DOMAIN d ADD CONSTRAINT nn NOT NULL xxx; -- works >> >> That doesn't seem particularly satisfactory. I think it should not >> require (and reject) a column name after "NOT NULL". > > Hmm. CREATE DOMAIN uses column constraint syntax, but ALTER DOMAIN uses > table constraint syntax. As long as you are only dealing with CHECK > constraints, there is no difference, but it shows up when using NOT NULL > constraint syntax. I agree that this is unsatisfactory. Attached is a > patch to try to sort this out. After studying this a bit more, I think moving forward in this direction is the best way. Attached is a new patch version, mainly with a more elaborate commit message. This patch makes the not-null constraint syntax consistent between CREATE DOMAIN and ALTER DOMAIN, and also makes the respective documentation correct. (Note that, as I show in the commit message, commit e5da0fe3c22 had in passing fixed a couple of bugs in CREATE and ALTER DOMAIN, so just reverting that commit wouldn't be a complete solution.)