Inline the easy cases in MakeExpandedObjectReadOnly().
Tom Lane <tgl@sss.pgh.pa.us>
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.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/expandeddatum.c | modified | +4 −22 |
| src/include/utils/expandeddatum.h | modified | +10 −2 |