X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=abc91248ec6c7947f01fc18aaefaeaa42d92c965;hb=619b7a25eae7bffe31395d103d8eb4c5d0a84581;hp=02893e9bfc30689247ee5345b3d6150fcae15e81;hpb=fbbce5a85247803288df5d97e5061889f118c826;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 02893e9..abc9124 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $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 @@ -219,6 +219,8 @@ struct zebra_register *zebra_register_open (ZebraService zs, const char *name, reg->keys.buf_max = 0; reg->keys.buf = 0; + reg->sortKeys.buf = 0; + reg->sortKeys.buf_max = 0; reg->records = 0; reg->dict = 0; @@ -234,6 +236,7 @@ struct zebra_register *zebra_register_open (ZebraService zs, const char *name, reg->key_file_no = 0; zebraRankInstall (reg, rank1_class); + zebraRankInstall (reg, rankzv_class); recordCompression = res_get_def (res, "recordCompression", "none"); if (!strcmp (recordCompression, "none")) @@ -398,10 +401,12 @@ static void zebra_register_close (ZebraService zs, struct zebra_register *reg) 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) @@ -430,6 +435,7 @@ void zebra_close (ZebraHandle zh) { ZebraService zs; struct zebra_session **sp; + int i; if (!zh) return; @@ -442,13 +448,16 @@ void zebra_close (ZebraHandle zh) 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) @@ -1180,8 +1189,6 @@ void zebra_end_read (ZebraHandle zh) if (zh->trans_no != 0) return; - zh->errCode=0; - #if HAVE_SYS_TIMES_H times (&zh->tms2); logf (LOG_LOG, "user/system: %ld/%ld", @@ -1280,18 +1287,29 @@ void zebra_begin_trans (ZebraHandle zh) 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"); @@ -1306,6 +1324,11 @@ void zebra_end_trans (ZebraHandle zh) 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') { @@ -1327,7 +1350,11 @@ void zebra_end_trans (ZebraHandle zh) (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)