88 *
99 *
1010 * IDENTIFICATION
11- * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.28 2000/01/11 03:33:12 momjian Exp $
11+ * $Header: /cvsroot/pgsql/src/backend/libpq/Attic/be-pqexec.c,v 1.29 2000/01/12 05:27:20 tgl Exp $
1212 *
1313 *-------------------------------------------------------------------------
1414 */
@@ -58,12 +58,16 @@ PQfn(int fnid,
5858{
5959char * retval ;/* XXX - should be datum, maybe ? */
6060char * arg [FUNC_MAX_ARGS ];
61+ bool isNull ;
6162int i ;
6263
6364/* ----------------
6465 *fill args[] array
6566 * ----------------
6667 */
68+ if (nargs > FUNC_MAX_ARGS )
69+ elog (ERROR ,"functions cannot have more than %d arguments" ,
70+ FUNC_MAX_ARGS );
6771for (i = 0 ;i < nargs ;i ++ )
6872{
6973if (args [i ].len == VAR_LENGTH_ARG )
@@ -78,18 +82,14 @@ PQfn(int fnid,
7882 *call the postgres function manager
7983 * ----------------
8084 */
81- retval = (char * )
82- fmgr (fnid ,arg [0 ],arg [1 ],arg [2 ],arg [3 ],
83- arg [4 ],arg [5 ],arg [6 ],arg [7 ],
84- arg [8 ],arg [9 ],arg [10 ],arg [11 ],
85- arg [12 ],arg [13 ],arg [14 ],arg [15 ]);
85+ retval = fmgr_array_args (fnid ,nargs ,arg ,& isNull );
8686
8787/* ----------------
8888 *put the result in the buffer the user specified and
8989 *return the proper code.
9090 * ----------------
9191 */
92- if (retval == ( char * ) NULL ) /* void retval */
92+ if (isNull ) /* void retval */
9393return "0" ;
9494
9595if (result_is_int )