Dave Cramer

da...@postgresintl.com
www.postgresintl.com


On Fri, 17 Aug 2018 at 18:30, Alvaro Herrera <alvhe...@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

Reply via email to