Thread: Get funcid when create function

Get funcid when create function

From
王翔宇
Date:
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

Re: Get funcid when create function

From
Robert Haas
Date:
On Fri, Aug 10, 2018 at 5:50 AM, 王翔宇 <wxyucs@gmail.com> 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


Re: Get funcid when create function

From
王翔宇
Date:
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 <robertmhaas@gmail.com>:
On Fri, Aug 10, 2018 at 5:50 AM, 王翔宇 <wxyucs@gmail.com> 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

Re: Get funcid when create function

From
Robert Haas
Date:
On Tue, Aug 14, 2018 at 10:04 PM, 王翔宇 <wxyucs@gmail.com> 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