>> Does anyone know the way of sending more than 16 parameters to function?
Change the relevant parameters in config.h (there are two), rebuild,
reinstall, initdb.
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> In 7.0, I could have sworn I had an #ifdef to go up to 32, but I don't
> see it anymore.
If you're talking about that switch statement in fmgr.c, I don't think
it needs to support more than 16 in the new fmgr --- there certainly is
no reason to tie it directly to FUNC_MAX_ARGS. The switch only applies
to calling old-style builtin or dynamically-loaded old-style C functions.
There aren't any old-style builtin functions left with more than 3 args,
and if there's someone out there with a C function that takes more
than 16 he'd be well advised to convert it to newstyle anyway.
(He could only have written such a function since 7.0 release ...
the historical limit was just 8, so I think the oldstyle cases beyond 8
are likely to be dead code anyhow ... not much point in cluttering the
backend with more cases.)
I think I need to change the config.h comment that goes with
MAX_FUNC_ARGS.
regards, tom lane