0

注: m4 が使用されているため、"_" プレフィックス文字列が展開されます (m4 は c プリプロセッサに似たマクロ プリプロセッサです)。

私のタイプ:

CREATE TYPE UrlPair AS (                                                      
    HostName        varchar( _LIMIT_HOSTNAME ),                               
    ScriptName      varchar( _LIMIT_SCRIPTNAME )                              
);

で使われる

CREATE TABLE SymbolTable_UrlPair (
    Symbol          _BIG_SYMBOL_SERIAL_TYPE     PRIMARY KEY,
    UrlPair         UrlPair                     
);

インデックス付き

CREATE INDEX SymbolTable_UrlPair_UrlPair 
    ON SymbolTable_UrlPair USING hash (UrlPair);

与えます:

psql:script:32: ERROR:  data type urlpair has no default operator class 
for access method "hash"

HINT:  You must specify an operator class for the index or define a default 
operator class for the data type.

質問

理想的には、エンジンが文字列を連結し、それをハッシュに使用することを望みます。しかし、私はうるさいわけではありません。アクセスメソッドハッシュ用にこの「オペレータークラス」を宣言するための構文を誰かに教えてもらえませんか。

ユーザー定義型のデフォルトのハッシュ動作を期待していたでしょう。私は型を保持することを本当に好みます。つまり、型を拡張したくありません。おそらく、もう少し精巧な UDT をいくつか定義するからです。

4

1 に答える 1

1

ハッシュとハッシュ インデックスは 2 つの異なるものです。ハッシュ インデックスは複数列のインデックスをサポートしていません。これが問題になる可能性があります。タイプ UrlPair は複数の値です。

Btree インデックスの何が問題になっていますか? どのような問題を解決する必要がありますか?

于 2010-03-06T16:50:50.530 に答える