Get funcid when create function

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Get funcid when create function

王翔宇
I'm developing a extension for pg. Now I have create a event trigger on ddl_command_end, and this function will be called after I enter create function statement. In this function I can only get parseTree. In pg source code, I found a function named "pg_event_trigger_ddl_commands" seems provide cmds which include funcid. BUT I didn't found any example to call this function.
who can helps?

--
Clench
Reply | Threaded
Open this post in threaded view
|

Re: Get funcid when create function

Robert Haas
On Fri, Aug 10, 2018 at 5:50 AM, 王翔宇 <[hidden email]> wrote:
> I'm developing a extension for pg. Now I have create a event trigger on
> ddl_command_end, and this function will be called after I enter create
> function statement. In this function I can only get parseTree. In pg source
> code, I found a function named "pg_event_trigger_ddl_commands" seems provide
> cmds which include funcid. BUT I didn't found any example to call this
> function.
> who can helps?

Maybe it would help to read the documentation on that function:

https://www.postgresql.org/docs/current/static/functions-event-triggers.html

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Reply | Threaded
Open this post in threaded view
|

Re: Get funcid when create function

王翔宇
Yes, I had read this document, BUT it's call from PL/PGSQL. I want call it from c function.

2018-08-13 18:57 GMT+08:00 Robert Haas <[hidden email]>:
On Fri, Aug 10, 2018 at 5:50 AM, 王翔宇 <[hidden email]> wrote:
> I'm developing a extension for pg. Now I have create a event trigger on
> ddl_command_end, and this function will be called after I enter create
> function statement. In this function I can only get parseTree. In pg source
> code, I found a function named "pg_event_trigger_ddl_commands" seems provide
> cmds which include funcid. BUT I didn't found any example to call this
> function.
> who can helps?

Maybe it would help to read the documentation on that function:

https://www.postgresql.org/docs/current/static/functions-event-triggers.html

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Reply | Threaded
Open this post in threaded view
|

Re: Get funcid when create function

Robert Haas
On Tue, Aug 14, 2018 at 10:04 PM, 王翔宇 <[hidden email]> wrote:
> Yes, I had read this document, BUT it's call from PL/PGSQL. I want call it
> from c function.

You could look up the OID using e.g. LookupFuncWithArgs and then call
it using one of the OidFunctionCall macros, but it might be a bit
awkward.  Perhaps it would be better to look at the C code inside that
function and use some of that same logic directly from your C code.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Previous Thread Next Thread