Please see check_object_ownership(). It checks relation's ownership if OBJECT_COLUMN, however, type's ownership is the correct check if OBJECT_ATTRIBUTE.
-- NEC OSS Promotion Center / PG-Strom Project KaiGai Kohei <kai...@ak.jp.nec.com> > -----Original Message----- > From: pgsql-hackers-ow...@postgresql.org > [mailto:pgsql-hackers-ow...@postgresql.org] On Behalf Of Alvaro Herrera > Sent: Tuesday, February 24, 2015 4:02 AM > To: Pg Hackers; Peter Eisentraut > Subject: [HACKERS] OBJECT_ATTRIBUTE is useless (or: ALTER TYPE vs ALTER TABLE > for composites) > > I found that the OBJECT_ATTRIBUTE symbol is useless. I can just remove > it and replace it with OBJECT_COLUMN, and everything continues to work; > no test fails that I can find. > > I thought we had a prohibition against ALTER TABLE when used on > composites, but it's not as severe as I thought. The following commands > fail in master: > > ALTER TABLE comptype RENAME TO comptype2; -- HINT: Use ALTER TYPE > ALTER TABLE comptype SET SCHEMA sch; -- HINT: Use ALTER TYPE > > However, the following command works in master: > > ALTER TABLE comptype RENAME COLUMN a TO b; > and has the same effect as this: > ALTER TYPE comptype RENAME ATTRIBUTE a TO b; > > The RENAME ATTTRIBUTE case in RenameStmt is the only thing currently > using OBJECT_ATTRIBUTE; therefore, since in precisely that case we do > not prohibit using ALTER TABLE, we can just remove OBJECT_ATTRIBUTE > completely. That leads to the attached patch, which changes no test > result at all. > > This symbol was added in > > commit e440e12c562432a2a695b8054964fb34e3bd823e > Author: Peter Eisentraut <pete...@gmx.net> > Date: Sun Sep 26 14:41:03 2010 +0300 > > Add ALTER TYPE ... ADD/DROP/ALTER/RENAME ATTRIBUTE > > Like with tables, this also requires allowing the existence of > composite types with zero attributes. > > reviewed by KaiGai Kohei > > Thoughts? > > -- > Álvaro Herrera http://www.2ndQuadrant.com/ > PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers