From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | Nick Johnson <arachnid(at)notdot(dot)net> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Dynamic function execution? |
Date: | 2006-03-14 08:05:20 |
Message-ID: | 20060314080520.GA94277@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Mon, Mar 13, 2006 at 10:45:47PM -0800, Nick Johnson wrote:
> Can anyone provide me with some direction on how to write a function
> I can load into postgres that will execute a function specified by
> OID (or regproc/regprocedure) at runtime, with type safety? I've been
> able to write such a function in C, but I was unable to figure out
> how to determine the parameters that the specified function expects,
> so I can prevent calling a function that doesn't match the expected
> signature (which segfaults postgres).
Does the calling function have to be written in C? In PL/pgSQL you
could easily query pg_proc with the oid to get the called function's
name, argument types, etc., then build an appropriate string to
EXECUTE. In C you could use SearchSysCache() and SysCacheGetAttr();
search through the source code for examples of calls to those
functions with a first argument of PROCOID.
Why do you need to do this? What problem are you trying to solve?
--
Michael Fuhr
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2006-03-14 08:08:53 | Re: [pgsql-advocacy] Wisconsin Circuit Court Access (WCCA) on |
Previous Message | r irussel | 2006-03-14 07:58:40 | Urgent !!! Please Help Me |