From 78ea086524d422fb7a5ce249d89ae5eb60009d65 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Wed, 7 Oct 2009 12:32:35 +0200 Subject: [PATCH] Fix bug WRT inconsistent registers, bug #3062. For a many create+drop of DBs the ordinalSU will increase. This, in turn will lead to a bigger resulting indexing term beyond length IT_MAX_WORD - for the compressed temp files. This patch increases the indexing buffer for the term to INP_NAME_MAX which is a log higher than IT_MAX_WORD. The too-small size resulted in a truncations of long terms (in fact phrases) that would be wrongly matched against the ISAM. --- index/kinput.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index/kinput.c b/index/kinput.c index f5afa44..de1d563 100644 --- a/index/kinput.c +++ b/index/kinput.c @@ -185,7 +185,7 @@ int key_file_read(struct key_file *f, char *key) key[i++] = c; while ((c = key_file_getc(f))) { - if (i <= IT_MAX_WORD) + if (i < INP_NAME_MAX-2) key[i++] = c; } key[i++] = '\0'; @@ -360,7 +360,7 @@ static int heap_read_one(struct heap_info *hi, char *name, char *key) /* for debugging only */ void zebra_log_dict_entry(ZebraHandle zh, const char *s) { - char dst[IT_MAX_WORD+1]; + char dst[INP_NAME_MAX+1]; int ord; int len = key_SU_decode(&ord, (const unsigned char *) s); const char *index_type; -- 1.7.10.4