An article in the pgsql-interfaces:
> From: Dirk Elmendorf <delmendo@cymitar.net>
> To: pgsql-interfaces@postgresql.org, Massimo Dal Zotto<dz@cs.unitn.it>
> Subject: fmgr_info
> Date: Thu, 18 Jun 1998 16:48:16 -0500 (CDT)
>
> I've finally upgraded from 6.1 to 6.3.2. And I went to recompile some of
> the custom functions I've built for Postgres-
> The problem I'm having is the declaration for fmgr_info has
> changed completely and I'm not sure how to make my code 6.3.2 compliant.
> Most of it is based directly off of the array iterator code provided in
> the contrib directory. I check this code out but I get the same error:
>
> array_iterator.c: In function `array_iterator':
> array_iterator.c:74: warning: passing arg 2 of `fmgr_info' from
> incompatible pointer type
> array_iterator.c:74: too many arguments to function `fmgr_info'
>
> Is there a 6.3.2 compliant version of array iterator available?
I came accross the same problem. I looked inside the code and found
that the following patch will be the help.
--- postgresql-6.3.2/contrib/array/array_iterator.c.orig Tue Apr 21 10:58:02 1998
+++ postgresql-6.3.2/contrib/array/array_iterator.c Thu Oct 8 17:33:53 1998
@@ -34,6 +34,7 @@
bool typbyval;
int typlen;
func_ptr proc_fn;
+ FmgrInfo fmgrinfo;
int pronargs;
int nitems,
i,
@@ -71,8 +72,9 @@
/* Lookup the function entry point */
proc_fn = (func_ptr) NULL;
- fmgr_info(proc, &pronargs); /* (proc, &proc_fn, &pronargs); */
- if ((proc_fn == NULL) || (pronargs != 2))
+ fmgr_info(proc, &fmgrinfo); /* (proc, &proc_fn, &pronargs); */
+ proc_fn = fmgrinfo.fn_addr;
+ if (( proc_fn == NULL) || (fmgrinfo.fn_nargs != 2))
{
elog(ERROR, "array_iterator: fmgr_info lookup failed for oid %d", proc);
return (0);
--
Jun Kuwamura
rC Cm Research Center of Computational Mechanics, Inc.
^ E-Mail: juk@rccm.co.jp
~