I wrote:
> Piyush Newe <piyush.newe@enterprisedb.com> writes:
>> create table tbl(col int);
>> create user usr;
>> grant select on tbl to usr;
>> \c postgres usr;
>> REVOKE SELECT on tbl from usr;
>> WARNING: no privileges could be revoked for "tbl"
>> WARNING: no privileges could be revoked for "tbl"
>> WARNING: no privileges could be revoked for "tbl"
>> WARNING: no privileges could be revoked for "tbl"
>> WARNING: no privileges could be revoked for "tbl"
>> WARNING: no privileges could be revoked for "tbl"
>> WARNING: no privileges could be revoked for "tbl"
>> WARNING: no privileges could be revoked for "tbl"
>> REVOKE
> You really should mention what version you're testing, but for the
> archives: I confirm this on 8.4.x and HEAD. 8.3 seems to behave sanely.
I traced through this and determined that the extra messages are a
consequence of the column-level-privileges patch.
restrict_and_check_grant is invoked both on the whole relation, and
on each column (since we have to get rid of any per-column SELECT
privilege that might have been granted).
I'm not sure offhand about a reasonable way to rearrange the code to
avoid duplicate messages.
regards, tom lane