Thread: Number of parameters in a sql function
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?
"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