pgsql: Inline the easy cases in MakeExpandedObjectReadOnly().

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Inline the easy cases in MakeExpandedObjectReadOnly().
Date: 2016-06-03 22:34:13
Message-ID: E1b8xfR-0003ee-2Y@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Inline the easy cases in MakeExpandedObjectReadOnly().

This attempts to buy back some of whatever performance we lost from fixing
bug #14174 by inlining the initial checks in MakeExpandedObjectReadOnly()
into the callers. We can do that in a macro without creating multiple-
evaluation hazards, so it's pretty much free notationally; and the amount
of code added to callers should be minimal as well. (Testing a value can't
take many more instructions than passing it to a subroutine.)

Might as well inline DatumIsReadWriteExpandedObject() while we're at it.

This is an ABI break for callers, so it doesn't seem safe to put into 9.5,
but I see no reason not to do it in HEAD.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/d50183c5786a21910bac566d2987f955c7bc1d62

Modified Files
--------------
src/backend/utils/adt/expandeddatum.c | 26 ++++----------------------
src/include/utils/expandeddatum.h | 12 ++++++++++--
2 files changed, 14 insertions(+), 24 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2016-06-03 23:12:37 pgsql: Fix grammar's AND/OR flattening to work with operator_precedence
Previous Message Tom Lane 2016-06-03 22:07:21 pgsql: Mark read/write expanded values as read-only in ValuesNext(), to