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. It would be good to see some benchmarks once the patch is written to verify that this really does improve performance, but I think it's a good idea. -Neil ---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match