注:
M4正在使用,因此扩展了带前缀的字符串(M4是一个类似于C预处理器的宏预处理器)。
我的Type:
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.
问题
理想情况下,我希望引擎将字符串浓缩并将其用于散列。不过,我并不挑剔。有人能告诉我为访问方法散列声明这个“operator类”的语法吗?
我本以为用户定义的类型会有一些默认的散列行为。我真的希望保留这个类型——也就是说,我不想扩展它,因为我可能会定义一些更详细的udt。