Looks like this was fixed, because we now generate an error:
test=> create function klasd (int, int, int, int, int, int, int, int,
int) returns int as 'asdf' language 'c';
ERROR: Procedures cannot take more than 8 arguments
> "Stan Ng" <stan@squaresoft.com> writes:
> > I'm running into a limit problem with CREATE FUNCTION. Whenever I exceed
> > the limit on parameters, somewhere around 12 for me, psql bombs on me
> > with the "pqReadData() -- backend closed the channel unexpectedly" error
> > message. Is there any way to increase the parameter limit for
> > functions?
>
> It shouldn't be letting you get that high; the system limit is 8
> parameters for a function. (It looks to me like parse_func.c should
> be, but is failing to, verify that the length of the parameter lists
> it is passed are within bounds --- or else gram.y itself should complain
> if the list is overlength.)
>
> Increasing the limit would be rather a major project I suspect.
> A quick look around the sources found a lot of dependencies, some
> being symbolic constants (not all the same one :-() and some being
> hard coded "8"s. Ick. Also, you would certainly be facing an initdb
> and database reload, because the number of argument-type columns in
> pg_proc would have to increase.
>
> It'd be good to clean this up and replace pg_proc's fixed-size
> proargtypes column with a variable-size "array of oid" column.
> Any volunteers?
>
> regards, tom lane
>
>
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026