Re: Fix for REFRESH MATERIALIZED VIEW ownership error message - Mailing list pgsql-hackers

From Dave Cramer
Subject Re: Fix for REFRESH MATERIALIZED VIEW ownership error message
Date
Msg-id CADK3HHL_aBbYqgq9vtHWVPxhvdh6D0EMBQz0QhpjepubBA1EQw@mail.gmail.com
Whole thread Raw
In response to Re: Fix for REFRESH MATERIALIZED VIEW ownership error message  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: Fix for REFRESH MATERIALIZED VIEW ownership error message
List pgsql-hackers



On Fri, 17 Aug 2018 at 18:30, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
On 2018-Aug-17, Jonathan S. Katz wrote:

> Hi,
>
> I Initially pointed out here[1] that running REFRESH MATERIALIZED VIEW as a
> non-superuser or table owner yields the following message:
>
>     test=> REFRESH MATERIALIZED VIEW blah;
>     ERROR: must be owner of relation blah
>
> The error message should say "...owner of materialized view..."
>
> The attached patch corrects this by setting the "relkind" for the
> REFRESH MATERIALIZED VIEW command to be "OBJECT_MATVIEW" so that the aclcheck
> returns the appropriate error message. The updated patch can be tested as such:
>
>     CREATE ROLE bar LOGIN;
>     CREATE TABLE a (x int);
>     CREATE MATERIALIZED VIEW b AS SELECT * FROM a;
>     \c - bar
>     REFRESH MATERIALIZED VIEW b;
>     ERROR:  must be owner of materialized view b
>
> I'm happy to generate the backpatches for it but wanted to receive feedback
> first.

Maybe add your test to some regress/ file?
+1 

As it is cosmetic, my inclination would be not to backpatch it.
However, I don't quite see how this patch can possibly fix the problem,
since the new struct member is not used anywhere AFAICT.

The only place this is used is in aclcheck_error 
case OBJECT_MATVIEW:
msg = gettext_noop("permission denied for materialized view %s");
break;

Dave

pgsql-hackers by date:

Previous
From: Wu Ivy
Date:
Subject: Getting NOT NULL constraint from pg_attribute
Next
From: Alvaro Herrera
Date:
Subject: Re: Fix for REFRESH MATERIALIZED VIEW ownership error message