设置高级 PostgreSQL 函数属性

Navicat

设置高级 PostgreSQL 函数属性

拥有者 函数的拥有者。

注意:PostgreSQL 8.0 或以上版本支持。

语言
函数实施的语言名。可能是 SQL、C、內部或用户定义过程语言名。为了向后相容,名可能是用单引号括着。

挥发性
这些属性告知查询优化器有关函数的性能。最多可指定一个选择。如果这些没有出现,VOLATILE 是默认的假设。

IMMUTABLE 表明函数不能修改数据库,及当给予相同的引数值时,总是返回相同的结果,也就是说,它不会做数据库查找或以其他方式使用信息不直接出现在其引数列表。如果使用这个选项,任何函数调用的全部常数引数可以立即替换函数值。

STABLE 表明函数不能修改数据库,并在一个单一表扫描它会为相同的引数值一致地返回相同的结果,但其结果可能会改变整个 SQL 语句。这是函数结果取决于数据库查找、参数变量(例如当前时区)等的适当选择功能。此外,请注意函数的 current_timestamp 家族限制为稳定,因为它们的值不会在事务中改变。

VOLATILE 表明函数值能在一个单一表扫描中改变,因此没有优化。相对少数数据库函数在这用处是易变的,有些例子是 random()、currval()、timeofday()。但请注意,任何具有副作用的函数必须分类为易变,即使其结果是相当明确的,以防止调用不断优化走,一个例子是 setval()。

定义者安全性
指定函数运行时使用创建它的用户权限。

返回集
表示函数将返回一组项目,而不是一个单一项目。

严格
表示每当函数的引数是 null 时,它总是返回 null。如果此参数被指定,当有 null 引数时,函数不会运行,相反,一个 null 结果会自动假定。

估计耗费
一个正数来估计函数的运行耗费,用 cpu_operator_cost 的单位。如果函数返回一个集,这是每返回行的耗费。如果耗费没有被指定,C-语言及內部函数假定 1 单位及全部其他语言为 100 单位。较大的值导致策划者应尽量避免比需要使多的评估函数。

注意:PostgreSQL 8.3 或以上版本支持。

估计行
一个正数来估计策划者应预期函数返回的行数。这只允许当函数被声明为返回一个集。默认的假设是 1000 列。

注意:PostgreSQL 8.3 或以上版本支持。

配置参数
当函数输入时设置到指定值的指定配置参数。然后当函数离开时还原到它以前的值。

注意:PostgreSQL 8.3 或以上版本支持。