|
14.2. 例子下面是一个创建用于两个复数相加的操作符的例子。 我们假设已经创建了 complex (见 Chapter 13 ) 类型的定义。首先我们需要做(相加)工作 的函数;然后我们就可以定义操作符: CREATE FUNCTION complex_add(complex, complex) RETURNS complex AS ' PGROOT /tutorial/complex' LANGUAGE C; CREATE OPERATOR + ( leftarg = complex, rightarg = complex, procedure = complex_add, commutator = + );
现在我们可以: SELECT (a + b) AS c FROM test_complex; c ----------------- (5.2,6.05) (133.42,144.95)
我们在这里已经演示了如何创建双目操作符。要创建单目操作符, 只需要省略 leftarg (对左目操作符)或者 rightarg (对右操作符)即可。只有 procedure 子句和参数(argument)子句 是 CREATE OPERATOR 里需要的条目。 例子里演示的 commutator 子句是一个给查询优化器的可选的暗示。 关于 commutator 和其它优化器提示的详细信息在下面给出。 |