Kouhei Sutou
kou****@clear*****
2009年 11月 13日 (金) 14:34:35 JST
須藤です。
grn_obj_cast()が
GRN_DB_INT8/GRN_DB_INT16/GRN_DB_UINT8/GRN_DB_UINT16に対応し
ていないので、それらがキーのハッシュテーブルにデータをloadす
ることができません。
GRN_DB_INT16の場合は以下のようにテストを実行できます。
% NO_CUTTER=yes test/unit/run-test.sh -n test_int16_key
たぶん、こんな風になるとよいのだと思いますが、GRN_INT8_SET()
などがないので、もう少しコードが必要そうです。
diff --git a/lib/db.c b/lib/db.c
index 232c17a..4841928 100644
--- a/lib/db.c
+++ b/lib/db.c
@@ -3525,6 +3525,12 @@ grn_obj_cast(grn_ctx *ctx, grn_obj *src, grn_obj *dest, int addp)
case GRN_DB_TEXT :
case GRN_DB_LONG_TEXT :
switch (dest->header.domain) {
+ case GRN_DB_INT8 :
+ TEXT2DEST(int8_t, grn_atoi, GRN_INT8_SET);
+ break;
+ case GRN_DB_INT16 :
+ TEXT2DEST(int16_t, grn_atoi, GRN_INT16_SET);
+ break;
case GRN_DB_INT32 :
TEXT2DEST(int32_t, grn_atoi, GRN_INT32_SET);
break;
--
--------------------------------------------------------
各種ブラウザ向けツールバーやプラグインの開発を承ります。
また、ブラウザからICカードやカメラなどのハードウェアへ
アクセスする機能の開発も承ります。
--------------------------------------------------------
株式会社クリアコード 須藤功平 <kou****@clear*****>
Tel: 03(6231)7270 URL: http://www.clear-code.com/
--------------------------------------------------------