json 列を含むいくつかのテーブルがあり、これらの列にインデックスを作成したいと考えています。ただし、デフォルトの演算子クラス ( http://www.postgresql.org/docs/9.2/static/sql-createopclass.html ) を取得します。誰かがすでにそれを行っていますか、それとも代替案を教えてくれますか?
問題を再現するには、次を試してください。
>> create table foo (json json, id int);
CREATE TABLE
>> create index on foo (id);
CREATE INDEX
>> create index on foo (json);
ERROR: data type json has no default operator class for access method "btree"
HINT: You must specify an operator class for the index or define a default operator class for the data type.
gist
同じことがorgil
インデックスにも当てはまります。
興味深いことに、次のことを試してもエラーは発生しません。
>> create type "nested" as (json json, extra text);
CREATE TYPE
>> create table bar (id int, json nested);
CREATE TABLE
>> create index on bar (json);
CREATE INDEX
コンポーネントのインデックスが作成されていないためでしょうか。
さて、主な問題はデフォルトのオペレーターです。それに関する助けや経験を共有していただければ幸いです。ありがとう。