注: 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 をいくつか定義するからです。