/* 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
{
struct zebra_register *reg;
int record_compression = REC_COMPRESS_NONE;
- const char *recordCompression = 0;
+ const char *compression_str = 0;
const char *profilePath;
int sort_type = ZEBRA_SORT_TYPE_FLAT;
ZEBRA_RES ret = ZEBRA_OK;
zebraRankInstall(reg, rank_similarity_class);
zebraRankInstall(reg, rank_static_class);
- recordCompression = res_get_def(res, "recordCompression", "none");
- if (!strcmp(recordCompression, "none"))
+ compression_str = res_get_def(res, "recordCompression", "none");
+ if (!strcmp(compression_str, "none"))
record_compression = REC_COMPRESS_NONE;
- if (!strcmp(recordCompression, "bzip2"))
+ else if (!strcmp(compression_str, "bzip2"))
record_compression = REC_COMPRESS_BZIP2;
+ else if (!strcmp(compression_str, "zlib"))
+ record_compression = REC_COMPRESS_ZLIB;
+ else
+ {
+ yaz_log(YLOG_FATAL, "invalid recordCompression: %s", compression_str);
+ 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");
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");