Re: FunctionCallN improvement.
От | Tom Lane |
---|---|
Тема | Re: FunctionCallN improvement. |
Дата | |
Msg-id | 8351.1107220141@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: FunctionCallN improvement. (Neil Conway <neilc@samurai.com>) |
Ответы |
Re: FunctionCallN improvement.
|
Список | 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 по дате отправления: