check_function_bodies

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

check_function_bodies 是一个 配置参数,控制在执行 CREATE FUNCTION 时对函数体字符串的验证。

check_function_bodies 添加于 PostgreSQL 7.4

默认值

check_function_bodies 的默认值为:on

按 PostgreSQL 版本查看详细信息

check_function_bodies (PostgreSQL 17)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 期间检查例程体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 16)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 期间检查例程体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 15)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 期间检查例程体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 14)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 和 CREATE PROCEDURE 期间检查例程体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 13)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 12)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 11)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 10)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 9.6)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 9.5)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  
挂起重启 false

文档: check_function_bodies

check_function_bodies (PostgreSQL 9.4)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: check_function_bodies

check_function_bodies (PostgreSQL 9.3)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: check_function_bodies

check_function_bodies (PostgreSQL 9.2)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: check_function_bodies

check_function_bodies (PostgreSQL 9.1)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: check_function_bodies

check_function_bodies (PostgreSQL 9.0)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: check_function_bodies

check_function_bodies (PostgreSQL 8.4)

设置 on
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 bool
来源 默认
最小值  
最大值  
枚举值  
启动值 on
重置值 on
源文件  
源代码行号  

文档: check_function_bodies

check_function_bodies (PostgreSQL 8.3)

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

文档: check_function_bodies

check_function_bodies (PostgreSQL 8.2)

设置  
单位  
类别 客户端连接默认值 / 语句行为
简短描述 在 CREATE FUNCTION 期间检查函数体。
额外描述  
上下文 用户
变量类型 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,则可以创建该函数

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" 的评论、建议或更正 此处