标量函数 (UDSF)
用户定义的标量函数 (UDSF) 为读取的每个数据行返回单个值。您可以在任何可使用内置 Vertica 函数的地方使用 UDSF。您通常可以开发 UDSF 来执行在使用 SQL 语句和函数时因过于复杂或速度过慢而难以执行的数据处理。UDSF 还可让您在 Vertica 中使用由第三方库提供的分析函数,并同时保持高性能。
UDSF 返回单个列。您可以在 ROW 中自动返回多个值。ROW 是一组属性值对。在以下示例中,div_with_rem 是一个执行除法运算的 UDSF,将商和余数作为整数返回:
=> SELECT div_with_rem(18,5);
div_with_rem
------------------------------
{"quotient":3,"remainder":3}
(1 row)
从 UDSF 返回的 ROW 不能用作 COUNT 的实参。
或者,您可以自己构造一个复杂的返回值,如复杂类型作为实参中所述。
UDSF 必须为每个输入行返回值(除非生成错误;有关详细信息,请参阅处理错误)。未能为输入行返回值会导致不正确的结果,如果未在 隔离和非隔离模式 中运行,可能会破坏 Vertica 服务器的稳定性。
一个 UDSF 最多可以有 9800 个实参。