pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
Postgres 支持左一元、右一元和二元操作符。操作符可以重载,即可用不同的参数数量和类型重复使用。如果出现歧义情况而系统无法确定该用哪个操作符,它会返回一个错误,你可能需要对左操作数和/或右操作数进行类型转换,帮助系统理解你想用哪个操作符。 要创建一个把两个复数相加的操作符,可以按下面的方法做。首先我们需要创建一个对新类型做加法的函数,然后就可以用该函数创建操作符。
CREATE FUNCTION complex_add(complex, complex)
RETURNS complex
AS '$PWD/obj/complex.so'
LANGUAGE 'c';
CREATE OPERATOR + (
leftarg = complex,
rightarg = complex,
procedure = complex_add,
commutator = +
);
我们在这里展示了如何创建二元操作符。要创建一元操作符,只需省略 leftarg(左一元)或 rightarg(右一元)之一即可。 只要我们给系统足够的类型信息,它就能自动确定该用哪些操作符。
SELECT (a + b) AS c FROM test_complex;
+----------------+
|c |
+----------------+
|(5.2,6.05) |
+----------------+
|(133.42,144.95) |
+----------------+
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。