Make pg_dump independent of FUNC_MAX_ARGS.

This commit is contained in:
Peter Eisentraut 2002-04-21 05:21:18 +00:00
parent 5a99671515
commit d433a3628e
2 changed files with 11 additions and 12 deletions

View File

@ -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);

View File

@ -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;