> On Aug 17, 2018, at 6:30 PM, 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?
Done. Please see attached.
> As it is cosmetic, my inclination would be not to backpatch it.
It’s cosmetic, but it’s a cosmetic bug: it incorrectly tells the user that they
must be the owner of the “relational” when in reality it’s the materialized view.
Thanks,
Jonathan