如何包装 record_out() 函数?
How to wrap record_out() function?
我想创建一个 IMMUTABLE
包装函数,正如 所讨论的那样,但不清楚如何进行。上面的 Whosebug 答案提供了以下示例:
例如,给定:
CREATE OR REPLACE FUNCTION public.immutable_unaccent(regdictionary, text)
RETURNS text LANGUAGE c IMMUTABLE PARALLEL SAFE STRICT AS
'$libdir/unaccent', 'unaccent_dict';
CREATE OR REPLACE FUNCTION public.f_unaccent(text)
RETURNS text LANGUAGE sql IMMUTABLE PARALLEL SAFE STRICT AS
$func$
SELECT public.immutable_unaccent(regdictionary 'public.unaccent', )
$func$;
我扫描了 lib/
中的所有库,据我所知 none 其中有与 record_out()
相关的导出函数。有什么想法吗?
record_out()
函数是内部 built-in 函数。你可以这样得到它的定义:
select pg_get_functiondef('record_out'::regproc);
pg_get_functiondef
----------------------------------------------------------
CREATE OR REPLACE FUNCTION pg_catalog.record_out(record)+
RETURNS cstring +
LANGUAGE internal +
STABLE PARALLEL SAFE STRICT +
AS $function$record_out$function$ +
我不知道你想要包装功能的目的是什么。仅保留警告,这样的更改可能会带来意想不到的结果。
我想创建一个 IMMUTABLE
包装函数,正如 所讨论的那样,但不清楚如何进行。上面的 Whosebug 答案提供了以下示例:
例如,给定:
CREATE OR REPLACE FUNCTION public.immutable_unaccent(regdictionary, text)
RETURNS text LANGUAGE c IMMUTABLE PARALLEL SAFE STRICT AS
'$libdir/unaccent', 'unaccent_dict';
CREATE OR REPLACE FUNCTION public.f_unaccent(text)
RETURNS text LANGUAGE sql IMMUTABLE PARALLEL SAFE STRICT AS
$func$
SELECT public.immutable_unaccent(regdictionary 'public.unaccent', )
$func$;
我扫描了 lib/
中的所有库,据我所知 none 其中有与 record_out()
相关的导出函数。有什么想法吗?
record_out()
函数是内部 built-in 函数。你可以这样得到它的定义:
select pg_get_functiondef('record_out'::regproc);
pg_get_functiondef
----------------------------------------------------------
CREATE OR REPLACE FUNCTION pg_catalog.record_out(record)+
RETURNS cstring +
LANGUAGE internal +
STABLE PARALLEL SAFE STRICT +
AS $function$record_out$function$ +
我不知道你想要包装功能的目的是什么。仅保留警告,这样的更改可能会带来意想不到的结果。