Re: Procedures cannot take more than 16 arguments - Mailing list pgsql-sql

From Tom Lane
Subject Re: Procedures cannot take more than 16 arguments
Date
Msg-id 16712.962215924@sss.pgh.pa.us
Whole thread Raw
In response to Re: Procedures cannot take more than 16 arguments  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-sql
>> 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


pgsql-sql by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Procedures cannot take more than 16 arguments
Next
From: philip@adhesivemedia.com (Philip Hallstrom)
Date:
Subject: Re: retrieving a serial number