Itagaki Takahiro
itaga****@gmail*****
2010年 10月 14日 (木) 17:12:25 JST
板垣です。
Int64 型の列を一致以外の条件で検索すると、結果が正しくないケースがあるようです。
小さな整数 (123 など) では期待通りに動作するようなので、
例えば 32bit を超える範囲でのみ発生するのかもしれません。
タイムスタンプを格納しようとした際に見つけました。
エポックからのマイクロ秒で表現すると、これくらいの大きな値になります。
----
table_create --name Test --flags TABLE_HASH_KEY --key_type ShortText
column_create --table Test --name int64 --flags COLUMN_SCALAR --type Int64
load --table Test
[
{"_key":"A","int64":344494643000000}
]
select --table Test --query int64:344494643000000
→ 結果:1件
select --table Test --query int64:<=344494643000000
→ 結果:0件
----
$ groonga --version
groonga 1.0.2-122-g6e5c0fd
[linux-gnu,x86_64,utf8,query-cache=0s,nfkc,mecab,epoll]
configure options: < '--without-mecab'>
--
Itagaki Takahiro