removing unnecessary get_att*() lsyscache functions
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
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
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
Attachments:
v2-0001-Remove-get_atttypmod.patchtext/plain; charset=UTF-8; name=v2-0001-Remove-get_atttypmod.patch; x-mac-creator=0; x-mac-type=0Download+1-30
v2-0002-Remove-get_attidentity.patchtext/plain; charset=UTF-8; name=v2-0002-Remove-get_attidentity.patch; x-mac-creator=0; x-mac-type=0Download+11-41
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
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
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