iakioの日記 RSSフィード

2010-01-23

SQLで==を使う

| 00:07 | SQLで==を使う - iakioの日記 を含むブックマーク はてなブックマーク - SQLで==を使う - iakioの日記

"SQLで間違って==とか書いちゃうよね"的なことを某所でいわれたので作ってみました。

http://gist.github.com/281672

create operatorでanyelementが使えるなんてやってみて初めて知りましたが、「こんなに短かくできるよ」を強調したかったのでanyelementにしたのであって、本来はそれぞれの型毎に作るべきでしょう。

たとえば8.4だと

=# select oprname, oprcode from pg_operator where oprname = '=';

 oprname |         oprcode
---------+--------------------------
 =       | int48eq
 =       | booleq
 =       | chareq
 =       | nameeq
...
 =       | enum_eq
 =       | tsvector_eq
 =       | tsquery_eq
 =       | record_eq
(59 rows)

と、データ型毎に59個ほど"="演算子が定義されているのでこれらと同じ定義で"=="を定義してあげれば何の問題も無いはずです。

トラックバック - http://postgresql.g.hatena.ne.jp/iakio/20100123