Re: OBJECT_ATTRIBUTE is useless (or: ALTER TYPE vs ALTER TABLE for composites)

From: Kouhei Kaigai <kaigai(at)ak(dot)jp(dot)nec(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Peter Eisentraut <peter_e(at)gmx(dot)net>
Subject: Re: OBJECT_ATTRIBUTE is useless (or: ALTER TYPE vs ALTER TABLE for composites)
Date: 2015-02-24 03:08:35
Message-ID: 9A28C8860F777E439AA12E8AEA7694F8010B674C@BPXM15GP.gisp.nec.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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 <kaigai(at)ak(dot)jp(dot)nec(dot)com>

> -----Original Message-----
> From: pgsql-hackers-owner(at)postgresql(dot)org
> [mailto:pgsql-hackers-owner(at)postgresql(dot)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 <peter_e(at)gmx(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2015-02-24 03:11:56 Re: Reduce pinning in btree indexes
Previous Message Adam Brightwell 2015-02-24 03:01:13 Re: Raspberry PI vs Raspberry PI 2: time to compile backend code