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 |