値が int4range である HSTORE 列 'ext' を持つテーブルがあります。例:
"p1"=>"[10, 18]", "p2"=>"[24, 32]", "p3"=>"[29, 32]", "p4"=>"[18, 19]"
ただし、これに式インデックスを作成しようとすると、エラーが発生します。
CREATE INDEX ix_test3_p1
ON test3
USING gist
(((ext -> 'p1'::text)::int4range));
エラー: データ型 text には、アクセス メソッド "gist" SQL 状態の既定の演算子クラスがありません: 42704 ヒント: インデックスの演算子クラスを指定するか、データ型の既定の演算子クラスを定義する必要があります。
この演算子を作成するにはどうすればよいですか?
ノート
各レコードには、独自の一意のキー セットがある場合があります。各キーは属性を表し、値は値の範囲を表します。したがって、すべてのレコードに「p1」があるわけではありません。これを hstore の EAV モデルと考えてください。