pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
下面是创建一个把两个复数相加的操作符的例子。我们假设已经创建过 complex 类型的定义(见 第 10 章)。首先需要一个完成工作的函数,然后就可以定义操作符:
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 子句和参数子句是 CREATE OPERATOR 中仅有的必选项。例子中展示的 commutator 子句是给查询优化器的一个可选提示。关于 commutator 和其他优化器提示的更多细节见下文。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。