更新时间:2026-02-06 GMT+08:00
分享

函数和操作符

操作符可以对一个或多个操作数进行处理,其位置可能处于操作数之前、之后或者两个操作数中间。处理完成之后,返回处理结果。

函数是对一些业务逻辑的封装,以完成特定的功能。函数可以有参数,也可以没有参数。函数是有返回类型的,执行完成后,会返回执行结果。

对于系统函数,用户可以进行修改,但是修改之后系统函数的语义可能会发生改变,从而导致系统控制紊乱。正常情况下不允许用户手动修改系统函数。

  • 当GUC参数behavior_compat_options含有'enable_funcname_with_argsname'选项时,投影别名显示完整函数。
  • 当GUC参数enable_volatile_match_index设置为ON,且DBCOMPATIBILITY设置为A时,volatile类型函数可以匹配索引。volatile函数在部分索引下,不保证能够命中索引;在函数执行过程中含有隐式转换时,也不保证能够命中索引。即使在本就无法命中索引的场景中,开启此选项,volatile函数仍然无法命中索引。
  • 当GUC参数enable_immutable_optimization设置为ON且DBCOMPATIBILITY设置为A时,如果immutable存储过程参数为常量或者可以被转换为常量的表达式(例如immutable函数,但是stable、volatile函数不可以),该场景下immutable存储过程并非每行执行一次。immutable存储过程在入参为行表达式的场景下为每行执行一次。在部分场景下,immutable存储过程执行次数会减少但不会减少至只执行一次。

相关文档