テキスト ハッシュ関数を GIN インデクサーに組み込みたいと考えています。
以下の拡張性を参照してください。
http://www.postgresql.org/docs/9.0/static/gin-extensibility.html
compareについては理解できます。
int compare(Datum a, Datum b)
しかし、 extractValue、extractQuery、およびconsistentはどうですか。
Datum *extractValue(Datum inputValue, int32 *nkeys)
Datum *extractQuery(Datum query, int32 *nkeys, StrategyNumber n, bool **pmatch, Pointer **extra_data)
bool consistent(bool check[], StrategyNumber n, Datum query, int32 nkeys, Pointer extra_data[], bool *recheck)
マニュアルは、それらを実装するのに役立ちません。
私はそれらを実装する方法を知っています。詳細に:
- extractValueのinputValueには何が渡されますか?
- extractValueによって何が返されますか?
- extractQueryのクエリには何が渡されますか?
- extractQueryによって何が返されますか?
- 一貫性のあるクエリには何が渡されますか?
- 一貫性のチェックには何が渡されますか?
インデックス ストレージ (ハッシュされたキー) はint4になります。入力タイプはtextです。