Postgresql 如何检查函数是否是不可变的?
我在PostgreSQL文档中没有找到有关Postgresql 如何检查函数是否是不可变的?,postgresql,Postgresql,我在PostgreSQL文档中没有找到有关translate()函数分类的任何信息。它是否被归类为不可变函数?查询系统目录: provolatile说明函数的结果是仅取决于其输入参数,还是受外部因素影响。对于“不可变”函数,i,它总是为相同的输入提供相同的结果。对于“稳定”功能,其结果(对于固定输入)在一次扫描内不会改变,这是s。对于“volatile”函数,它是v,其结果可能随时发生变化 或者,使用该函数 select proname, pronamespace::regnamespace,
translate()
函数分类的任何信息。它是否被归类为不可变函数?查询系统目录:
provolatile
说明函数的结果是仅取决于其输入参数,还是受外部因素影响。对于“不可变”函数,i,它总是为相同的输入提供相同的结果。对于“稳定”功能,其结果(对于固定输入)在一次扫描内不会改变,这是s。对于“volatile”函数,它是v,其结果可能随时发生变化
或者,使用该函数
select proname, pronamespace::regnamespace, provolatile
from pg_proc
where proname = 'translate'
proname | pronamespace | provolatile
-----------+--------------+-------------
translate | pg_catalog | i
(1 row)
select pg_get_functiondef('pg_catalog.translate'::regproc)
pg_get_functiondef
-------------------------------------------------------------------
CREATE OR REPLACE FUNCTION pg_catalog.translate(text, text, text)+
RETURNS text +
LANGUAGE internal +
IMMUTABLE STRICT +
AS $function$translate$function$ +
(1 row)