> On Aug 17, 2018, at 6:30 PM, 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?

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


Attachment: 0001-Improve-error-messages-for-CREATE-OR-REPLACE-PROCEDU-v2.patch
Description: Binary data

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to