Kun*_*ngi 5 c sql database postgresql plpgsql
我可以通过C语言函数API或使用pl/pgsql接受回调函数作为参数在Postgres中创建用户定义的函数吗?
据我所知,没有办法通过C语言API执行此操作,因为它只接受sql数据类型,并且没有数据类型function.但也许我错过了什么?
由于每个函数/过程必须在 pg_proc 中有一个条目,因此您可以使用主键来标识过程。这也将消除具有相同名称但参数数量不同或参数类型不同的过程的问题。
其简写是类型regproc和regprocedure相关的强制转换,以便于处理。查找这些的手册。
识别函数并传递它是没有问题的:
select 'pg_database_size(oid)'::regprocedure; -- create "reference"
regprocedure
-----------------------
pg_database_size(oid)
Run Code Online (Sandbox Code Playgroud)
用作regprocedure参数类型。
我还没有弄清楚的问题是如何以方便的方式实际调用这样的东西。