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