-/* $Id: zebraapi.c,v 1.146 2005-01-15 19:38:28 adam Exp $
+/* $Id: zebraapi.c,v 1.147 2005-01-15 19:56:54 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
#define ASSERTZHRES assert(zh && zh->service && zh->res)
#define ASSERTZS assert(zs)
-static int log_level=0;
-static int log_level_initialized=0;
+static int log_level = 0;
+static int log_level_initialized = 0;
static Res zebra_open_res (ZebraHandle zh);
static void zebra_close_res (ZebraHandle zh);
{
const char *dir ;
ASSERTZS;
- yaz_log(log_level,"zebra_chdir");
+ yaz_log(log_level, "zebra_chdir");
dir = res_get (zs->global_res, "chdir");
if (!dir)
return;
static void zebra_flush_reg (ZebraHandle zh)
{
ASSERTZH;
- yaz_log(log_level,"zebra_flush_reg");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_flush_reg");
+ zh->errCode = 0;
zebraExplain_flush (zh->reg->zei, zh);
- extract_flushWriteKeys (zh,1 /* final */);
+ extract_flushWriteKeys (zh, 1 /* final */);
zebra_index_merge (zh );
}
const char *default_encoding;
if (!log_level_initialized)
{
- log_level=yaz_log_module_level("zebraapi");
- log_level_initialized=1;
+ log_level = yaz_log_module_level("zebraapi");
+ log_level_initialized = 1;
}
- yaz_log(log_level,"zebra_open");
+ yaz_log(log_level, "zebra_open");
if (!zs)
return 0;
- zh = (ZebraHandle) xmalloc (sizeof(*zh));
+ zh = (ZebraHandle) xmalloc(sizeof(*zh));
yaz_log (YLOG_DEBUG, "zebra_open zs=%p returns %p", zs, zh);
zh->service = zs;
if (!log_level_initialized)
{
- log_level=yaz_log_module_level("zebraapi");
- log_level_initialized=1;
+ log_level = yaz_log_module_level("zebraapi");
+ log_level_initialized = 1;
}
- yaz_log(log_level,"zebra_start %s",configName);
+ yaz_log(log_level, "zebra_start %s",configName);
assert(configName);
if ((res = res_open (configName, def_res, over_res)))
{
- ZebraService zh = xmalloc (sizeof(*zh));
+ ZebraService zh = xmalloc(sizeof(*zh));
yaz_log (YLOG_DEBUG, "Read resources `%s'", configName);
ASSERTZS;
- reg = xmalloc (sizeof(*reg));
+ reg = xmalloc(sizeof(*reg));
assert (name);
reg->name = xstrdup (name);
reg->zei = 0;
reg->matchDict = 0;
reg->key_file_no = 0;
- reg->ptr_i=0;
+ reg->ptr_i = 0;
zebraRankInstall (reg, rank1_class);
zebraRankInstall (reg, rankzv_class);
int zebra_admin_shutdown (ZebraHandle zh)
{
ASSERTZH;
- yaz_log(log_level,"zebra_admin_shutdown");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_admin_shutdown");
+ zh->errCode = 0;
zebra_mutex_cond_lock (&zh->service->session_lock);
zh->service->stop_flag = 1;
{
ZebraService zs;
ASSERTZH;
- yaz_log(log_level,"zebra_admin_start");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_admin_start");
+ zh->errCode = 0;
zs = zh->service;
zebra_mutex_cond_lock (&zs->session_lock);
zebra_mutex_cond_unlock (&zs->session_lock);
bfs_destroy (reg->bfs);
data1_destroy (reg->dh);
- xfree (reg->sortKeys.buf);
- xfree (reg->keys.buf);
+ xfree(reg->sortKeys.buf);
+ xfree(reg->keys.buf);
if (reg->keys.codec_handle)
iscz1_stop(reg->keys.codec_handle);
- xfree (reg->key_buf);
- xfree (reg->name);
- xfree (reg);
+ xfree(reg->key_buf);
+ xfree(reg->name);
+ xfree(reg);
}
int zebra_stop(ZebraService zs)
recTypeClass_destroy(zs->record_classes);
nmem_destroy(zs->nmem);
res_close (zs->global_res);
- xfree (zs->configName);
- xfree (zs);
+ xfree(zs->configName);
+ xfree(zs);
return 0;
}
struct zebra_session **sp;
int i;
- yaz_log(log_level,"zebra_close");
+ yaz_log(log_level, "zebra_close");
if (!zh)
return 0;
ASSERTZH;
- zh->errCode=0;
+ zh->errCode = 0;
zs = zh->service;
yaz_log (YLOG_DEBUG, "zebra_close zh=%p", zh);
zebra_register_close (zh->service, zh->reg);
zebra_close_res (zh);
- xfree (zh->record_encoding);
+ xfree(zh->record_encoding);
for (i = 0; i < zh->num_basenames; i++)
- xfree (zh->basenames[i]);
- xfree (zh->basenames);
+ xfree(zh->basenames[i]);
+ xfree(zh->basenames);
if (zh->iconv_to_utf8 != 0)
yaz_iconv_close (zh->iconv_to_utf8);
sp = &(*sp)->next;
}
zebra_mutex_cond_unlock (&zs->session_lock);
- xfree (zh->reg_name);
- xfree (zh->user_perm);
- zh->service=0; /* more likely to trigger an assert */
- xfree (zh->path_reg);
- xfree (zh);
+ xfree(zh->reg_name);
+ xfree(zh->user_perm);
+ zh->service = 0; /* more likely to trigger an assert */
+ xfree(zh->path_reg);
+ xfree(zh);
return 0;
}
Res res = 0;
char fname[512];
ASSERTZH;
- zh->errCode=0;
+ zh->errCode = 0;
if (zh->path_reg)
{
static void zebra_close_res (ZebraHandle zh)
{
ASSERTZH;
- zh->errCode=0;
+ zh->errCode = 0;
if (zh->res != zh->service->global_res)
res_close (zh->res);
zh->res = 0;
static int zebra_select_register (ZebraHandle zh, const char *new_reg)
{
ASSERTZH;
- zh->errCode=0;
+ zh->errCode = 0;
if (zh->res && strcmp (zh->reg_name, new_reg) == 0)
return 0;
if (!zh->res)
}
zebra_close_res(zh);
}
- xfree (zh->reg_name);
+ xfree(zh->reg_name);
zh->reg_name = xstrdup (new_reg);
- xfree (zh->path_reg);
+ xfree(zh->path_reg);
zh->path_reg = 0;
if (zh->service->path_root)
{
- zh->path_reg = xmalloc (strlen(zh->service->path_root) +
+ zh->path_reg = xmalloc(strlen(zh->service->path_root) +
strlen(zh->reg_name) + 3);
strcpy (zh->path_reg, zh->service->path_root);
if (*zh->reg_name)
struct map_baseinfo *p = &info;
int i;
ASSERTZH;
- yaz_log(log_level,"map_basenames ");
+ yaz_log(log_level, "map_basenames ");
assert(stream);
- zh->errCode=0;
+ zh->errCode = 0;
info.zh = zh;
info.num_bases = *num_bases;
int zebra_select_database (ZebraHandle zh, const char *basename)
{
ASSERTZH;
- yaz_log(log_level,"zebra_select_database %s",basename);
+ yaz_log(log_level, "zebra_select_database %s",basename);
assert(basename);
- zh->errCode=0;
+ zh->errCode = 0;
return zebra_select_databases (zh, 1, &basename);
}
ASSERTZH;
assert(basenames);
- yaz_log(log_level,"zebra_select_databases n=%d [0]=%s",
+ yaz_log(log_level, "zebra_select_databases n=%d [0]=%s",
num_bases,basenames[0]);
- zh->errCode=0;
+ zh->errCode = 0;
if (num_bases < 1)
{
return -1;
}
for (i = 0; i < zh->num_basenames; i++)
- xfree (zh->basenames[i]);
- xfree (zh->basenames);
+ xfree(zh->basenames[i]);
+ xfree(zh->basenames);
zh->num_basenames = num_bases;
- zh->basenames = xmalloc (zh->num_basenames * sizeof(*zh->basenames));
+ zh->basenames = xmalloc(zh->num_basenames * sizeof(*zh->basenames));
for (i = 0; i < zh->num_basenames; i++)
zh->basenames[i] = xstrdup (basenames[i]);
if (cp)
{
len = cp - basenames[0];
- new_reg = xmalloc (len + 1);
+ new_reg = xmalloc(len + 1);
memcpy (new_reg, basenames[0], len);
new_reg[len] = '\0';
}
}
}
zebra_select_register (zh, new_reg);
- xfree (new_reg);
+ xfree(new_reg);
if (!zh->res)
{
zh->errCode = 109;
assert(query);
assert(hits);
assert(setname);
- yaz_log(log_level,"zebra_search_rpn");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_search_rpn");
+ zh->errCode = 0;
zh->hits = 0;
*hits = 0;
zebra_end_read (zh);
max = res_get (zh->res, "maxhits");
if (max)
- maxhits=atoi(max);
+ maxhits = atoi(max);
else {
- int i=0;
- maxhits=INT_MAX; /* properly rounded, to make it look like a limit*/
+ int i = 0;
+ maxhits = INT_MAX; /* properly rounded, to make it look like a limit*/
while (maxhits>100) { maxhits/=10; i++;}
while (i--) maxhits *= 10;
}
if (zh->hits > maxhits) { /* too large for yaz to handle */
- yaz_log(YLOG_DEBUG,"limiting hits to "ZINT_FORMAT, maxhits);
- *hits=maxhits;
+ yaz_log(YLOG_DEBUG, "limiting hits to "ZINT_FORMAT, maxhits);
+ *hits = maxhits;
}
else
*hits = zh->hits;
assert(recs);
assert(num_recs>0);
- yaz_log(log_level,"zebra_records_retrieve n=%d",num_recs);
- zh->errCode=0;
+ yaz_log(log_level, "zebra_records_retrieve n=%d",num_recs);
+ zh->errCode = 0;
if (!zh->res)
{
}
else
recs[i].buf = buf;
- recs[i].score=poset[i].score;
- recs[i].sysno=poset[i].sysno;
+ recs[i].score = poset[i].score;
+ recs[i].sysno = poset[i].sysno;
}
else
{
zebra_meta_records_destroy(zh, poset, num_recs);
}
zebra_end_read (zh);
- xfree (pos_array);
+ xfree(pos_array);
return ret;
}
assert(num_entries);
assert(is_partial);
assert(entries);
- yaz_log(log_level,"zebra_scan");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_scan");
+ zh->errCode = 0;
if (zebra_begin_read (zh))
{
*entries = 0;
assert(input_setnames);
assert(sort_sequence);
assert(sort_status);
- yaz_log(log_level,"zebra_sort");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_sort");
+ zh->errCode = 0;
if (zebra_begin_read (zh))
return 1;
resultSetSort (zh, stream->mem, num_input_setnames, input_setnames,
assert(num_setnames>0);
assert(setnames);
assert(statuses);
- yaz_log(log_level,"zebra_deleleResultSet n=%d",num_setnames);
- zh->errCode=0;
+ yaz_log(log_level, "zebra_deleleResultSet n=%d",num_setnames);
+ zh->errCode = 0;
if (zebra_begin_read(zh))
return Z_DeleteStatus_systemProblemAtTarget;
switch (function)
{
if (zh)
{
- yaz_log(log_level,"zebra_errCode: %d",zh->errCode);
+ yaz_log(log_level, "zebra_errCode: %d",zh->errCode);
return zh->errCode;
}
- yaz_log(log_level,"zebra_errCode: o");
+ yaz_log(log_level, "zebra_errCode: o");
return 0;
}
const char *e="";
if (zh)
e= diagbib1_str (zh->errCode);
- yaz_log(log_level,"zebra_errString: %s",e);
+ yaz_log(log_level, "zebra_errString: %s",e);
return e;
}
char *a="";
if (zh)
a= zh->errString;
- yaz_log(log_level,"zebra_errAdd: %s",a);
+ yaz_log(log_level, "zebra_errAdd: %s",a);
return a;
}
{
if (zh)
{
- zh->errCode=0;
+ zh->errCode = 0;
zh->errString="";
}
}
ZebraService zs;
ASSERTZH;
- zh->errCode=0;
+ zh->errCode = 0;
zs= zh->service;
sprintf(u, "perm.%.30s", user ? user : "anonymous");
p = res_get(zs->global_res, u);
- xfree (zh->user_perm);
+ xfree(zh->user_perm);
zh->user_perm = xstrdup(p ? p : "r");
/* users that don't require a password .. */
const char *record_type)
{
ASSERTZH;
- yaz_log(log_level,"zebra_admin_import_begin db=%s rt=%s",
+ yaz_log(log_level, "zebra_admin_import_begin db=%s rt=%s",
database, record_type);
- zh->errCode=0;
+ zh->errCode = 0;
if (zebra_select_database(zh, database))
return 1;
if (zebra_begin_trans (zh, 1))
int zebra_admin_import_end (ZebraHandle zh)
{
ASSERTZH;
- yaz_log(log_level,"zebra_admin_import_end");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_admin_import_end");
+ zh->errCode = 0;
zebra_end_trans (zh);
return 0;
}
SYSNO sysno;
int i;
ASSERTZH;
- yaz_log(log_level,"zebra_admin_import_segment");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_admin_import_segment");
+ zh->errCode = 0;
for (i = 0; i<segment->num_segmentRecords; i++)
{
Z_NamePlusRecord *npr = segment->segmentRecords[i];
assert(action>0 && action <=4);
assert(rec_buf);
- yaz_log(log_level,"zebra_admin_exchange_record ac=%d", action);
- zh->errCode=0;
+ yaz_log(log_level, "zebra_admin_exchange_record ac=%d", action);
+ zh->errCode = 0;
if (!recid_buf || recid_len <= 0 || recid_len >= sizeof(recid_z))
return -1;
{
int ret = 0;
ASSERTZH;
- yaz_log(log_level,"zebra_drop_database");
+ yaz_log(log_level, "zebra_drop_database");
zh->errCode = 0;
if (zebra_select_database (zh, database))
int zebra_create_database (ZebraHandle zh, const char *database)
{
ASSERTZH;
- yaz_log(log_level,"zebra_create_database %s",database);
+ yaz_log(log_level, "zebra_create_database %s",database);
assert(database);
- zh->errCode=0;
+ zh->errCode = 0;
if (zebra_select_database (zh, database))
return -1;
ASSERTZH;
assert(input_str);
assert(output_str);
- yaz_log(log_level,"zebra_string_norm ");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_string_norm ");
+ zh->errCode = 0;
if (!zh->reg->zebra_maps)
return -1;
wrbuf = zebra_replace(zh->reg->zebra_maps, reg_id, "",
long p = getpid();
FILE *f;
ASSERTZH;
- yaz_log(log_level,"zebra_set_state v=%d seq=%d", val, seqno);
- zh->errCode=0;
+ yaz_log(log_level, "zebra_set_state v=%d seq=%d", val, seqno);
+ zh->errCode = 0;
sprintf (state_fname, "state.%s.LCK", zh->reg_name);
fname = zebra_mk_fname (res_get(zh->res, "lockDir"), state_fname);
yaz_log (YLOG_DEBUG, "zebra_set_state: %c %d %ld", val, seqno, p);
fprintf (f, "%c %d %ld\n", val, seqno, p);
fclose (f);
- xfree (fname);
+ xfree(fname);
return 0;
}
FILE *f;
ASSERTZH;
- yaz_log(log_level,"zebra_get_state ");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_get_state ");
+ zh->errCode = 0;
sprintf (state_fname, "state.%s.LCK", zh->reg_name);
fname = zebra_mk_fname (res_get(zh->res, "lockDir"), state_fname);
f = fopen (fname, "r");
fscanf (f, "%c %d", val, seqno);
fclose (f);
}
- xfree (fname);
+ xfree(fname);
return 0;
}
return -1;
}
ASSERTZHRES;
- yaz_log(log_level,"zebra_begin_trans rw=%d",rw);
+ yaz_log(log_level, "zebra_begin_trans rw=%d",rw);
if (zh->user_perm)
{
}
zh->trans_w_no = zh->trans_no;
- zh->errCode=0;
+ zh->errCode = 0;
zh->records_inserted = 0;
zh->records_updated = 0;
zebra_flush_reg (zh);
return 0;
}
- zh->errCode=0;
+ zh->errCode = 0;
#if HAVE_SYS_TIMES_H
times (&zh->tms1);
#endif
{
ZebraTransactionStatus dummy;
ASSERTZH;
- yaz_log(log_level,"zebra_end_trans");
+ yaz_log(log_level, "zebra_end_trans");
return zebra_end_transaction(zh, &dummy);
}
ASSERTZH;
assert(status);
- yaz_log(log_level,"zebra_end_transaction");
+ yaz_log(log_level, "zebra_end_transaction");
status->processed = 0;
status->inserted = 0;
{
ASSERTZH;
assert(path);
- zh->errCode=0;
+ zh->errCode = 0;
yaz_log (log_level, "updating %s", path);
repositoryUpdate (zh, path);
return zh->errCode;
{
ASSERTZH;
assert(path);
- zh->errCode=0;
+ zh->errCode = 0;
yaz_log (log_level, "deleting %s", path);
repositoryDelete (zh, path);
return zh->errCode;
{
ASSERTZH;
assert(path);
- yaz_log(log_level,"zebra_repository_show");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_repository_show");
+ zh->errCode = 0;
repositoryShow (zh, path);
return zh->errCode;
}
const char *rval;
BFiles bfs;
ASSERTZH;
- zh->errCode=0;
+ zh->errCode = 0;
if (!zh->res)
{
int zebra_clean (ZebraHandle zh)
{
ASSERTZH;
- yaz_log(log_level,"zebra_clean");
+ yaz_log(log_level, "zebra_clean");
return zebra_commit_ex(zh, 1);
}
int zebra_commit (ZebraHandle zh)
{
ASSERTZH;
- yaz_log(log_level,"zebra_commit");
+ yaz_log(log_level, "zebra_commit");
return zebra_commit_ex(zh, 0);
}
const char *rval;
BFiles bfs = 0;
ASSERTZH;
- yaz_log(log_level,"zebra_init");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_init");
+ zh->errCode = 0;
if (!zh->res)
{
{
BFiles bfs;
ASSERTZH;
- yaz_log(log_level,"zebra_compact");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_compact");
+ zh->errCode = 0;
if (!zh->res)
{
zh->errCode = 109;
int zebra_result (ZebraHandle zh, int *code, char **addinfo)
{
ASSERTZH;
- yaz_log(log_level,"zebra_result");
+ yaz_log(log_level, "zebra_result");
*code = zh->errCode;
*addinfo = zh->errString;
return 0;
int zebra_shadow_enable (ZebraHandle zh, int value)
{
ASSERTZH;
- yaz_log(log_level,"zebra_shadow_enable");
- zh->errCode=0;
+ yaz_log(log_level, "zebra_shadow_enable");
+ zh->errCode = 0;
zh->shadow_enable = value;
return 0;
}
{
ASSERTZH;
assert(encoding);
- yaz_log(log_level,"zebra_octet_term_encoding");
+ yaz_log(log_level, "zebra_octet_term_encoding");
zh->errCode = 0;
if (zh->iconv_to_utf8 != 0)
int zebra_record_encoding (ZebraHandle zh, const char *encoding)
{
ASSERTZH;
- yaz_log(log_level,"zebra_record_encoding");
+ yaz_log(log_level, "zebra_record_encoding");
zh->errCode = 0;
- xfree (zh->record_encoding);
+ xfree(zh->record_encoding);
zh->record_encoding = 0;
if (encoding)
zh->record_encoding = xstrdup (encoding);
ASSERTZH;
assert(name);
assert(value);
- yaz_log(log_level,"zebra_set_resource %s:%s",name,value);
- zh->errCode=0;
+ yaz_log(log_level, "zebra_set_resource %s:%s",name,value);
+ zh->errCode = 0;
res_set(zh->res, name, value);
return 0;
}
assert(name);
assert(defaultvalue);
v= res_get_def( zh->res, name, (char *)defaultvalue);
- zh->errCode=0;
- yaz_log(log_level,"zebra_get_resource %s:%s",name,v);
+ zh->errCode = 0;
+ yaz_log(log_level, "zebra_get_resource %s:%s",name,v);
return v;
}
int zebra_trans_no (ZebraHandle zh)
{
ASSERTZH;
- yaz_log(log_level,"zebra_trans_no");
+ yaz_log(log_level, "zebra_trans_no");
return zh->trans_no;
}
int zebra_get_shadow_enable (ZebraHandle zh)
{
ASSERTZH;
- yaz_log(log_level,"zebra_get_shadow_enable");
+ yaz_log(log_level, "zebra_get_shadow_enable");
return (zh->shadow_enable);
}
int zebra_set_shadow_enable (ZebraHandle zh, int value)
{
ASSERTZH;
- yaz_log(log_level,"zebra_set_shadow_enable %d",value);
+ yaz_log(log_level, "zebra_set_shadow_enable %d",value);
zh->shadow_enable = value;
return 0;
}
assert(buf);
yaz_log(log_level, "zebra_insert_record sysno=" ZINT_FORMAT, *sysno);
- if (buf_size < 1) buf_size = strlen(buf);
+ if (buf_size < 1)
+ buf_size = strlen(buf);
if (zebra_begin_trans(zh, 1))
return 1;
const char *setname, int *numhits)
{
int hits = 0;
- int res=-1;
+ int res = -1;
Z_RPNQuery *query;
ODR odr = odr_createmem(ODR_ENCODE);
ASSERTZH;
assert(pqf_query);
assert(setname);
- yaz_log(log_level,"zebra_search_PQF s=%s q=%s",setname, pqf_query);
+ yaz_log(log_level, "zebra_search_PQF s=%s q=%s",setname, pqf_query);
query = p_query_rpn (odr, PROTO_Z3950, pqf_query);
if (!query)
yaz_log (YLOG_WARN, "bad query %s\n", pqf_query);
else
- res=zebra_search_RPN (zh, odr, query, setname, &hits);
+ res = zebra_search_RPN (zh, odr, query, setname, &hits);
odr_destroy(odr);
- yaz_log(log_level,"Hits: %d",hits);
+ yaz_log(log_level, "Hits: %d",hits);
if (numhits)
- *numhits=hits;
+ *numhits = hits;
return res;
}
/* ---------------------------------------------------------------------------
Sort - a simplified interface, with optional read locks.
*/
-int zebra_sort_by_specstr (ZebraHandle zh,
- ODR stream,
+int zebra_sort_by_specstr (ZebraHandle zh, ODR stream,
const char *sort_spec,
const char *output_setname,
const char **input_setnames)
assert(output_setname);
assert(input_setnames);
sort_sequence = yaz_sort_spec (stream, sort_spec);
- yaz_log(log_level,"sort (FIXME) ");
+ yaz_log(log_level, "sort (FIXME) ");
if (!sort_sequence)
{
- yaz_log(YLOG_WARN,"invalid sort specs '%s'", sort_spec);
+ yaz_log(YLOG_WARN, "invalid sort specs '%s'", sort_spec);
zh->errCode = 207;
return -1;
}