-/* $Id: zebraapi.c,v 1.83 2003-02-12 15:45:59 heikki Exp $
+/* $Id: zebraapi.c,v 1.86 2003-02-27 23:08:10 pop Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
Index Data Aps
reg->keys.buf_max = 0;
reg->keys.buf = 0;
+ reg->sortKeys.buf = 0;
+ reg->sortKeys.buf_max = 0;
reg->records = 0;
reg->dict = 0;
reg->key_file_no = 0;
zebraRankInstall (reg, rank1_class);
+ zebraRankInstall (reg, rankzv_class);
recordCompression = res_get_def (res, "recordCompression", "none");
if (!strcmp (recordCompression, "none"))
bfs_destroy (reg->bfs);
data1_destroy (reg->dh);
+ xfree (reg->sortKeys.buf);
+ xfree (reg->keys.buf);
+
xfree (reg->key_buf);
xfree (reg->name);
xfree (reg);
- yaz_log(LOG_DEBUG, "zebra_register_close 2");
}
void zebra_stop(ZebraService zs)
{
ZebraService zs;
struct zebra_session **sp;
+ int i;
if (!zh)
return;
return ;
resultSetDestroy (zh, -1, 0, 0);
-
if (zh->reg)
zebra_register_close (zh->service, zh->reg);
zebra_close_res (zh);
xfree (zh->record_encoding);
+ for (i = 0; i < zh->num_basenames; i++)
+ xfree (zh->basenames[i]);
+ xfree (zh->basenames);
+
if (zh->iconv_to_utf8 != 0)
yaz_iconv_close (zh->iconv_to_utf8);
if (zh->iconv_from_utf8 != 0)
if (zh->trans_no != 0)
return;
- zh->errCode=0;
-
#if HAVE_SYS_TIMES_H
times (&zh->tms2);
logf (LOG_LOG, "user/system: %ld/%ld",
zh->reg->seqno = seqno;
}
-void zebra_end_trans (ZebraHandle zh)
+void zebra_end_trans (ZebraHandle zh) {
+ ZebraTransactionStatus dummy;
+ zebra_end_transaction(zh, &dummy);
+}
+
+void zebra_end_transaction (ZebraHandle zh, ZebraTransactionStatus *status)
{
char val;
int seqno;
const char *rval;
+
ASSERTZH;
+ status->processed = 0;
+ status->inserted = 0;
+ status->updated = 0;
+ status->deleted = 0;
+ status->utime = 0;
+ status->stime = 0;
+
zh->trans_no--;
if (zh->trans_no != 0)
return;
- zh->errCode=0;
-
yaz_log (LOG_LOG, "zebra_end_trans");
rval = res_get (zh->res, "shadow");
zh->records_processed, zh->records_inserted,
zh->records_updated, zh->records_deleted);
+ status->processed = zh->records_processed;
+ status->inserted = zh->records_inserted;
+ status->updated = zh->records_updated;
+ status->deleted = zh->records_deleted;
+
zebra_get_state (zh, &val, &seqno);
if (val != 'd')
{
(long) (zh->tms2.tms_utime - zh->tms1.tms_utime),
(long) (zh->tms2.tms_stime - zh->tms1.tms_stime));
+ status->utime = (long) (zh->tms2.tms_utime - zh->tms1.tms_utime);
+ status->stime = (long) (zh->tms2.tms_stime - zh->tms1.tms_stime);
#endif
+
+ return;
}
void zebra_repository_update (ZebraHandle zh)