Обсуждение: removing unnecessary get_att*() lsyscache functions

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

removing unnecessary get_att*() lsyscache functions

От
Peter Eisentraut
Дата:
I noticed that get_attidentity() isn't really necessary because the
information can be obtained from an existing tuple descriptor in each case.

Also, get_atttypmod() hasn't been used since 2004.

I propose the attached patches to remove these two functions.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Вложения

Re: removing unnecessary get_att*() lsyscache functions

От
Michael Paquier
Дата:
On Thu, Oct 18, 2018 at 09:57:00PM +0200, Peter Eisentraut wrote:
> I noticed that get_attidentity() isn't really necessary because the
> information can be obtained from an existing tuple descriptor in each
> case.

This one is also recent, so it looks fine to remove it.

> Also, get_atttypmod() hasn't been used since 2004.

github is not actually reporting areas where this is used.

> I propose the attached patches to remove these two functions.

> -     if (get_attidentity(RelationGetRelid(rel), attnum))
> +     if (TupleDescAttr(RelationGetDescr(rel), attnum - 1)->attidentity)

I find this style heavy, saving Form_pg_attribute into a different
variable would be more readable in my opinion..
--
Michael

Вложения

Re: removing unnecessary get_att*() lsyscache functions

От
Peter Eisentraut
Дата:
On 19/10/2018 16:00, Michael Paquier wrote:
>> -     if (get_attidentity(RelationGetRelid(rel), attnum))
>> +     if (TupleDescAttr(RelationGetDescr(rel), attnum - 1)->attidentity)
> I find this style heavy, saving Form_pg_attribute into a different
> variable would be more readable in my opinion..

OK, slightly reworked version attached.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Вложения

Re: removing unnecessary get_att*() lsyscache functions

От
Michael Paquier
Дата:
On Mon, Oct 22, 2018 at 07:12:28PM +0200, Peter Eisentraut wrote:
> OK, slightly reworked version attached.

+   attTup = (Form_pg_attribute) GETSTRUCT(tuple);
    attnum = ((Form_pg_attribute) GETSTRUCT(tuple))->attnum;

No need to call twice GETSTRUCT here..  The rest looks fine.
--
Michael

Вложения

Re: removing unnecessary get_att*() lsyscache functions

От
Andres Freund
Дата:
Hi,

On 2018-10-23 09:11:17 +0900, Michael Paquier wrote:
> On Mon, Oct 22, 2018 at 07:12:28PM +0200, Peter Eisentraut wrote:
> > OK, slightly reworked version attached.
> 
> +   attTup = (Form_pg_attribute) GETSTRUCT(tuple);
>     attnum = ((Form_pg_attribute) GETSTRUCT(tuple))->attnum;
> 
> No need to call twice GETSTRUCT here..  The rest looks fine.

Just about every optimize compiler can optimize that away, it's just a
bit of pointer magic.  Obviously we don't want to repeat longer lines
superfluously, but twice isn't that bad...

Greetings,

Andres Freund


Re: removing unnecessary get_att*() lsyscache functions

От
Peter Eisentraut
Дата:
On 23/10/2018 02:11, Michael Paquier wrote:
> On Mon, Oct 22, 2018 at 07:12:28PM +0200, Peter Eisentraut wrote:
>> OK, slightly reworked version attached.
> 
> +   attTup = (Form_pg_attribute) GETSTRUCT(tuple);
>     attnum = ((Form_pg_attribute) GETSTRUCT(tuple))->attnum;
> 
> No need to call twice GETSTRUCT here..  The rest looks fine.

Fixed that, and committed, thanks.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services