UDx 参数
形参可让您为 UDx 定义具有以下特性的实参:在由调用 UDx 的 SQL 语句处理的所有行之间保持恒定。通常,您的 UDxs 允许在 SQL 语句中使用来自列的参数。例如,在以下 SQL 语句中,add2ints
UDSF 的参数 a 和 b 会在 SELECT 语句处理每行时更改值:
=> SELECT a, b, add2ints(a,b) AS 'sum' FROM example;
a | b | sum
---+----+-----
1 | 2 | 3
3 | 4 | 7
5 | 6 | 11
7 | 8 | 15
9 | 10 | 19
(5 rows)
UDx 处理的所有行的参数都保持恒定。您还可以将参数变为可选,从而当用户没有提供参数时,UDx 可以使用默认值。例如,以下示例说明了调用名为 add2intsWithConstant
的 UDSF 的过程,其中具有一个名为 constant 的参数值,该参数值会添加到每个输入行提供的每个参数:
=> SELECT a, b, add2intsWithConstant(a, b USING PARAMETERS constant=42)
AS 'a+b+42' from example;
a | b | a+b+42
---+----+--------
1 | 2 | 45
3 | 4 | 49
5 | 6 | 53
7 | 8 | 57
9 | 10 | 61
(5 rows)
注意
调用具有实参的 UDx 时,最后一个参数和 USING PARAMETERS 子句之间没有逗号。此部分的主题说明了如何开发接收参数的 UDX。