Re: BUG #15833: defining a comment on a domain constraint fails with wrong OID

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: clemens@ladisch.de, pgsql-bugs@lists.postgresql.org
Date: 2019-06-05T18:15:02Z
Lists: pgsql-bugs
On 2019-Jun-05, PG Bug reporting form wrote:

> postgres=> CREATE DOMAIN ddd AS text CONSTRAINT ccc CHECK (TRUE);
> CREATE DOMAIN
> postgres=> COMMENT ON CONSTRAINT ccc ON DOMAIN ddd IS 'test';
> ERROR:  42704: type with OID 444275 does not exist
> LOCATION:  pg_type_ownercheck, aclchk.c:4585

Confirmed.  It works for superusers, which explains why the existing
regression tests pass -- and that's because check_object_ownership()
(which is handing the OBJECT_DOMCONSTRAINT case wrongly) is bypassed for
superusers.  Annoyingly, get_object_address does not return the type's
OID, only the domain's.

I'm surprised that this has been broken for so long with no reports ...
I broke it in 7eca575d1c28 (December 2014).

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Commits

  1. Fix handling of COMMENT for domain constraints