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。