更新时间:2024-05-07 GMT+08:00

函数和操作符

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

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

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

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