[pgsql-jp: 25023] Re: 配列を含んだテーブルにUNIONするとエラーになる現象について
WADA Hiroyuki
wada @ komine-ag.co.jp
2002年 2月 28日 (木) 21:14:51 JST
"kiyoshi.yoshida" wrote:
> 配列を含んだテーブルがあります。
> そのテーブルを参照するためにUNIONを用いると
>
> ERROR: Unable to identify an ordering operator '<' for type '_bpchar'
> Use an explicit ordering operator or modify the query
> とはじかれてしまいます。
> 例えば、
> create table t2(a char[5],i int);
> なテーブルに対して、
> select * from t2 union select * from t2;
> すると上記現象が発生します。
UNIONというより、配列を比較するOPERATORを定義しないと並べ替えが
できないという問題でしょう。(そのまんまですが^^;)
SELECT DISTINCT(a) FROM t2;
とか
SELECT * FROM t2 ORDER BY a;
でも同じようなエラーになるはずです。
> どうしたらこのエラーを回避できるでしょうか。
UNION ALLを使えば(結果はともかく)回避はできます。
char[5]をソートできるようにoperatorを定義するのが本式。
(これも、ERRORに書いてあるまんまだなあ^^;)
和田@修行中
pgsql-jp メーリングリストの案内