已结束支持的版本: 6.3
历史版本。 PostgreSQL 6.3 已结束支持。 请参阅 当前版本手册.
第 33 章 扩展 SQL:操作符
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) |
+----------------+