check_function_bodies

一个控制函数体字符串创建时验证的 GUC 参数

check_function_bodies 是一个 配置参数,用于决定在执行 CREATE FUNCTION 时是否验证函数体字符串。

check_function_bodiesPostgreSQL 7.4 中被添加。

默认值

check_function_bodies 的默认值为:on

按 PostgreSQL 版本详细信息

check_function_bodies (PostgreSQL 19)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 18)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 17)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 16)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 15)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 14)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 13)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 12)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 11)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 10)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 9.6)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 9.5)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  
需要重启 false

文档check_function_bodies

check_function_bodies (PostgreSQL 9.4)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档check_function_bodies

check_function_bodies (PostgreSQL 9.3)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档check_function_bodies

check_function_bodies (PostgreSQL 9.2)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档check_function_bodies

check_function_bodies (PostgreSQL 9.1)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档check_function_bodies

check_function_bodies (PostgreSQL 9.0)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档check_function_bodies

check_function_bodies (PostgreSQL 8.4)

设置 开启
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 开启
重置值 开启
源文件  
源行  

文档check_function_bodies

check_function_bodies (PostgreSQL 8.3)

设置  
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  

文档check_function_bodies

check_function_bodies (PostgreSQL 8.2)

设置  
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 时检查函数体。
扩展描述  
上下文 user
变量类型 bool
来源 默认
最小值  
最大值  

文档check_function_bodies

变更历史

示例

通常,在创建函数时会验证其函数体。

postgres=# CREATE FUNCTION foo()
  RETURNS INT
  LANGUAGE SQL
AS 'SELECT * FROM bar()';
ERROR:  function bar() does not exist
LINE 4: AS 'SELECT * FROM bar()';
                          ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

然而,如果将 check_function_bodies 设置为 off,则可以在不引发 ERROR 的情况下创建函数。

postgres=# SHOW check_function_bodies;
 check_function_bodies 
-----------------------
 off
(1 row)

postgres=# \df
                       List of functions
 Schema | Name | Result data type | Argument data types | Type 
--------+------+------------------+---------------------+------
(0 rows)

postgres=# CREATE FUNCTION foo()
  RETURNS INT
  LANGUAGE SQL
AS 'SELECT * FROM bar()';
CREATE FUNCTION

当然,只要被引用的函数不存在,函数就会以 ERROR 失败。

postgres=# SELECT * FROM foo();
ERROR:  function bar() does not exist
LINE 1: SELECT * FROM bar()
                      ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
QUERY:  SELECT * FROM bar()
CONTEXT:  SQL function "foo" during inlining

分类

函数和过程, GUC 配置项

反馈

请在此处提交对“check_function_bodies”的任何评论、建议或更正 此处