Обсуждение: Simplify calls of pg_class_aclcheck when multiple modes are used

Поиск
Список
Период
Сортировка

Simplify calls of pg_class_aclcheck when multiple modes are used

От
Michael Paquier
Дата:
Hi all,

In a couple of code paths we do the following to check permissions on an object:
if (pg_class_aclcheck(relid, userid, ACL_USAGE) != ACLCHECK_OK &&
    pg_class_aclcheck(relid, userid, ACL_UPDATE) != ACLCHECK_OK)
    ereport(ERROR, blah);

Wouldn't it be better to simplify that with a single call of pg_class_aclcheck, gathering together the modes that need to be checked? In the case above, the call to pg_class_aclcheck would become like that:
if (pg_class_aclcheck(relid, userid,
         ACL_USAGE | ACL_UPDATE) != ACLCHECK_OK)
    ereport(ERROR, blah);

That's not a critical thing, but it would save some cycles. Patch is attached.
Regards,
--
Michael
Вложения

Re: Simplify calls of pg_class_aclcheck when multiple modes are used

От
Fabrízio de Royes Mello
Дата:
On Wed, Aug 27, 2014 at 9:02 AM, Michael Paquier <michael.paquier@gmail.com> wrote:
>
> Hi all,
>
> In a couple of code paths we do the following to check permissions on an object:
> if (pg_class_aclcheck(relid, userid, ACL_USAGE) != ACLCHECK_OK &&
>     pg_class_aclcheck(relid, userid, ACL_UPDATE) != ACLCHECK_OK)
>     ereport(ERROR, blah);
>
> Wouldn't it be better to simplify that with a single call of pg_class_aclcheck, gathering together the modes that need to be checked? In the case above, the call to pg_class_aclcheck would become like that:
> if (pg_class_aclcheck(relid, userid,
>          ACL_USAGE | ACL_UPDATE) != ACLCHECK_OK)
>     ereport(ERROR, blah);
>
> That's not a critical thing, but it would save some cycles. Patch is attached.
>

I did a little review:
- applied to master without errors
- no compiler warnings
- no regressions

It's a minor change and as Michael already said would save some cycles.

Marked as "Ready for commiter".

Regards,

--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Timbira: http://www.timbira.com.br
>> Blog: http://fabriziomello.github.io
>> Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello
>> Github: http://github.com/fabriziomello

Re: Simplify calls of pg_class_aclcheck when multiple modes are used

От
Peter Eisentraut
Дата:
On 8/27/14 8:02 AM, Michael Paquier wrote:
> In a couple of code paths we do the following to check permissions on an
> object:
> if (pg_class_aclcheck(relid, userid, ACL_USAGE) != ACLCHECK_OK &&
>     pg_class_aclcheck(relid, userid, ACL_UPDATE) != ACLCHECK_OK)
>     ereport(ERROR, blah);
>
> Wouldn't it be better to simplify that with a single call of
> pg_class_aclcheck, gathering together the modes that need to be checked?

Yes, it's probably just an oversight.

While looking at this, I wrote a few tests cases for sequence
privileges, because that was not covered at all.  That patch is attached.

That led me to discover this issue:
http://www.postgresql.org/message-id/5446B819.1020600@gmx.net

I'll wait for the resolution of that and then commit this.


Вложения

Re: Simplify calls of pg_class_aclcheck when multiple modes are used

От
Michael Paquier
Дата:
On Wed, Oct 22, 2014 at 5:03 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
While looking at this, I wrote a few tests cases for sequence
privileges, because that was not covered at all.  That patch is attached.
+1 for those tests.
--
Michael

Re: Simplify calls of pg_class_aclcheck when multiple modes are used

От
Fabrízio de Royes Mello
Дата:

Em terça-feira, 21 de outubro de 2014, Michael Paquier <michael.paquier@gmail.com> escreveu:
On Wed, Oct 22, 2014 at 5:03 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
While looking at this, I wrote a few tests cases for sequence
privileges, because that was not covered at all.  That patch is attached.
+1 for those tests.

 
+1

Fabrízio Mello


--
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL

Re: Simplify calls of pg_class_aclcheck when multiple modes are used

От
Peter Eisentraut
Дата:
On 10/21/14 6:19 PM, Michael Paquier wrote:
> On Wed, Oct 22, 2014 at 5:03 AM, Peter Eisentraut <peter_e@gmx.net
> <mailto:peter_e@gmx.net>> wrote:
> 
>     While looking at this, I wrote a few tests cases for sequence
>     privileges, because that was not covered at all.  That patch is
>     attached.
> 
> +1 for those tests.
> -- 
> Michael

Committed your patch and tests.



Re: Simplify calls of pg_class_aclcheck when multiple modes are used

От
Michael Paquier
Дата:
On Thu, Oct 23, 2014 at 10:45 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
Committed your patch and tests.
Thanks!
--
Michael