Re: FunctionCallN improvement. - Mailing list pgsql-hackers

From Tom Lane
Subject Re: FunctionCallN improvement.
Date
Msg-id 8351.1107220141@sss.pgh.pa.us
Whole thread Raw
In response to Re: FunctionCallN improvement.  (Neil Conway <neilc@samurai.com>)
Responses Re: FunctionCallN improvement.  (a_ogawa <a_ogawa@hi-ho.ne.jp>)
List pgsql-hackers
Neil Conway <neilc@samurai.com> writes:
> On Mon, 2005-01-31 at 23:38 +0900, a_ogawa wrote:
>> (b)Define the macro that initialize FunctionCallInfoData, and use it 
>> instead of MemSet in all FunctionCallN, DirectFunctionCallN, 
>> OidFunctionCallN.
>> This macro is the following. 
>> 
>> #define InitFunctionCallInfoData(Fcinfo, Flinfo, Nargs)     \
>> do {                                                    \
>> (Fcinfo)->flinfo = Flinfo;                          \
>> (Fcinfo)->context = NULL;                           \
>> (Fcinfo)->resultinfo = NULL;                        \
>> (Fcinfo)->isnull = false;                           \
>> (Fcinfo)->nargs = Nargs;                            \
>> MemSet((Fcinfo)->argnull, 0, Nargs * sizeof(bool)); \
>> } while(0)
>> 
>> I think that plan(b) is better, because source code consistency 
>> and efficiency improve.

> I agree; I think the macro is a nice improvement to readability.

But a dead loss for performance, since it does a MemSet *and* some other
operations.  What's worse, it changes a word-aligned MemSet into a
non-aligned one, knocking out all the optimizations therein.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Josh Berkus
Date:
Subject: Re: Allow GRANT/REVOKE permissions to be applied to all schema
Next
From: "Dmitry Konnov"
Date:
Subject: win32. Please help me to compile PostGre