我可以通过 C 语言函数 API 或使用接受回调函数作为参数的 pl/pgsql
在 Postgres 中创建用户定义的函数吗?
据我所知,无法通过 C 语言 API 执行此操作,因为它只接受 sql 数据类型,并且function
没有数据类型。但也许我遗漏了什么?
最佳答案
由于每个函数/过程都必须在 pg_proc 中有一个条目,您可以使用主键来识别过程。这也将消除具有相同名称但参数数量不同或参数类型不同的过程的问题。
它的简写形式是 regproc
和 regprocedure
类型以及关联的转换以便于处理。查找 manual对于这些。
识别函数并传递它是没有问题的:
select 'pg_database_size(oid)'::regprocedure; -- create "reference"
regprocedure
-----------------------
pg_database_size(oid)
使用regprocedure
作为参数类型。
我还没有弄清楚的问题是如何以方便的方式实际调用这样的东西。
关于sql - 作为 Postgres 中另一个函数的参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8346065/