]> granicus.if.org Git - postgresql/commitdiff
Make pg_dump independent of FUNC_MAX_ARGS.
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 21 Apr 2002 05:21:18 +0000 (05:21 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 21 Apr 2002 05:21:18 +0000 (05:21 +0000)
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump.h

index 64807c25a00f77a5a2d15365bc89dc27d394ca0b..9763fd54c817cb3f07eed477cc90dcf7e6b0f862 100644 (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);
index dc67a2efbef61370efc881ba6cdd762ec4f570f7..924388be5942e38c12b18e60d467bea34b804c6e 100644 (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;