我正在为Postgres编写C用户定义的扩展函数,并希望获取在C代码中的SQL级别中设置的参数值。
例如,在SQL中,我有类似以下内容:
CREATE FUNCTION my_test_function(text) RETURNS text AS 'path_to_so', 'my_function' LANGUAGE C STRICT SET some_boolean TO true;
问题是如何在我的C代码中获取some_boolean变量的值?
Datum my_test_function(PG_FUNCTION_ARGS) {
// try to get some_boolean here
}
最佳答案
some_boolean
必须是现有的GUC(配置参数),否则功能定义将产生
ERROR: unrecognized configuration parameter "some_boolean"
如果是GUC,则它可能是核心PostgreSQL GUG,或者已在
DefineCustomBoolVariable
(来自utils/guc.h
)中注册。每个GUC都属于C变量,通常是全局变量。
在代码中使用该变量!
关于c - PostgreSQL:如何在C扩展功能中获取参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48386268/