| PostgreSQL Programmer's Guide | ||
|---|---|---|
| Prev | Next | |
Postgres では左単項演算子、および 右単項演算子をサポートしています。演算子は、異なった数や型の 引数でオーバーロードしたり再使用したりすることもできます。 もし演算子が曖昧な使い方をされたりして、システムが使用するべき 正しい演算子を決定することができない場合は、エラーが返ります。 その場合は、どの演算子を使いたいのかを明示的に指定するために、 左/右単項演算子を使って型キャストを行ってやる必要があるかも しれません。 2 つの複素数を追加するための演算子を生成したい場合は以下の ようにします。まず、新しい型を追加するための関数を生成する 必要があります。それからその関数を使って演算子を生成します。
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 = +
);ここでは 2 項演算子を生成しました。単項演算子を生成 するには、単に(左方単項のための) leftarg、または(右方単項 のための) rightarg を省略するだけです。システムに対して 十分な型情報を与えた場合は、システムは自動的に使用するべき 演算子を選択します。
SELECT (a + b) AS c FROM test_complex;
+----------------+
|c |
+----------------+
|(5.2,6.05) |
+----------------+
|(133.42,144.95) |
+----------------+| Prev | Home | Next |
| ユーザ定義型 | Extending SQL: Aggregates |