diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 64807c25a00f77a5a2d15365bc89dc27d394ca0b..9763fd54c817cb3f07eed477cc90dcf7e6b0f862 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -22,7 +22,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.250 2002/04/19 23:13:54 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.251 2002/04/21 05:21:17 petere Exp $ * *------------------------------------------------------------------------- */ @@ -1636,9 +1636,13 @@ clearFuncInfo(FuncInfo *fun, int numFuncs) free(fun[i].proname); if (fun[i].usename) free(fun[i].usename); - for (a = 0; a < FUNC_MAX_ARGS; ++a) - if (fun[i].argtypes[a]) - free(fun[i].argtypes[a]); + if (fun[i].argtypes) + { + for (a = 0; a < fun[i].nargs; ++a) + if (fun[i].argtypes[a]) + free(fun[i].argtypes[a]); + free(fun[i].argtypes); + } if (fun[i].prorettype) free(fun[i].prorettype); if (fun[i].prosrc) @@ -2066,12 +2070,7 @@ getFuncs(int *numFuncs) write_msg(NULL, "WARNING: owner of function \"%s\" appears to be invalid\n", finfo[i].proname); - if (finfo[i].nargs < 0 || finfo[i].nargs > FUNC_MAX_ARGS) - { - write_msg(NULL, "failed sanity check: function %s has more than %d (namely %d) arguments\n", - finfo[i].proname, FUNC_MAX_ARGS, finfo[i].nargs); - exit_nicely(); - } + finfo[i].argtypes = malloc(finfo[i].nargs * sizeof(finfo[i].argtypes[0])); parseNumericArray(PQgetvalue(res, i, i_proargtypes), finfo[i].argtypes, finfo[i].nargs); diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h index dc67a2efbef61370efc881ba6cdd762ec4f570f7..924388be5942e38c12b18e60d467bea34b804c6e 100644 --- a/src/bin/pg_dump/pg_dump.h +++ b/src/bin/pg_dump/pg_dump.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pg_dump.h,v 1.81 2002/04/11 20:00:08 tgl Exp $ + * $Id: pg_dump.h,v 1.82 2002/04/21 05:21:18 petere Exp $ * * Modifications - 6/12/96 - dave@bensoft.com - version 1.13.dhb.2 * @@ -66,7 +66,7 @@ typedef struct _funcInfo char *proowner; Oid lang; int nargs; - char *argtypes[FUNC_MAX_ARGS]; + char **argtypes; char *prorettype; int retset; /* 1 if the function returns a set, else 0 */ char *prosrc;