X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=index%2Fzebraapi.c;h=420861ff8c769fc80fa4bf37999ee4e14bfecf93;hp=65b91764a3672c81dd4b773bec8494a4e56e792b;hb=16853a7593f10680ea8d6895aa0720b9af3779e6;hpb=d71149439012fadf092321e3b507d23711715743 diff --git a/index/zebraapi.c b/index/zebraapi.c index 65b9176..420861f 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,5 +1,5 @@ /* This file is part of the Zebra server. - Copyright (C) 1994-2009 Index Data + Copyright (C) 1994-2010 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -420,7 +420,7 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, zebraRankInstall(reg, rank_similarity_class); zebraRankInstall(reg, rank_static_class); - compression_str = res_get_def(res, "compression_str", "none"); + compression_str = res_get_def(res, "recordCompression", "none"); if (!strcmp(compression_str, "none")) record_compression = REC_COMPRESS_NONE; else if (!strcmp(compression_str, "bzip2")) @@ -433,6 +433,13 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, ret = ZEBRA_FAIL; } + if (!rec_check_compression_method(record_compression)) + { + yaz_log(YLOG_FATAL, "unsupported recordCompression: %s", + compression_str); + ret = ZEBRA_FAIL; + } + { const char *index_fname = res_get_def(res, "index", "default.idx"); if (index_fname && *index_fname && strcmp(index_fname, "none")) @@ -2187,6 +2194,33 @@ ZEBRA_RES zebra_compact(ZebraHandle zh) return ZEBRA_OK; } +ZEBRA_RES zebra_register_check(ZebraHandle zh) +{ + ZEBRA_RES res = ZEBRA_FAIL; + if (zebra_begin_read(zh) == ZEBRA_OK) + { + zint no_records = 0; + if (zh->reg) + { + Record rec = rec_get_root(zh->reg->records); + + while (rec) + { + Record r1; + + r1 = rec_get_next(zh->reg->records, rec); + rec_free(&rec); + rec = r1; + no_records++; + } + res = ZEBRA_OK; + } + zebra_end_read(zh); + yaz_log(YLOG_LOG, ZINT_FORMAT " records scanned", no_records); + } + return res; +} + void zebra_result(ZebraHandle zh, int *code, char **addinfo) { yaz_log(log_level, "zebra_result");