-/* $Id: zebraapi.c,v 1.152 2005-01-23 12:36:27 adam Exp $
+/* $Id: zebraapi.c,v 1.160 2005-04-14 12:02:08 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
if (res_get_match (res, "isam", "c", ISAM_DEFAULT))
{
struct ISAMC_M_s isamc_m;
- if (!(reg->isamc = isc_open (reg->bfs, FNAME_ISAMC,
+ if (!(reg->isamc = isamc_open (reg->bfs, FNAME_ISAMC,
rw, key_isamc_m(res, &isamc_m))))
{
- yaz_log (YLOG_WARN, "isc_open failed");
+ yaz_log (YLOG_WARN, "isamc_open failed");
return 0;
}
}
if (reg->isams)
isams_close (reg->isams);
if (reg->isamc)
- isc_close (reg->isamc);
+ isamc_close (reg->isamc);
if (reg->isamb)
isamb_close (reg->isamb);
rec_close (®->records);
}
int zebra_search_RPN (ZebraHandle zh, ODR o,
- Z_RPNQuery *query, const char *setname, int *hits)
+ Z_RPNQuery *query, const char *setname, zint *hits)
{
const char *max;
zint maxhits;
assert(recs);
assert(num_recs>0);
- yaz_log(log_level, "zebra_records_retrieve n=%d",num_recs);
+ yaz_log(log_level, "zebra_records_retrieve n=%d", num_recs);
zh->errCode = 0;
if (!zh->res)
char *buf;
int len;
recs[i].errCode =
- zebra_record_fetch (zh, poset[i].sysno, poset[i].score,
- stream, input_format, comp,
- &recs[i].format, &buf, &len,
- &recs[i].base, &recs[i].errString);
+ zebra_record_fetch(zh, poset[i].sysno, poset[i].score,
+ stream, input_format, comp,
+ &recs[i].format, &buf, &len,
+ &recs[i].base, &recs[i].errString);
recs[i].len = len;
if (len > 0)
{
return ret;
}
+int zebra_scan_PQF(ZebraHandle zh, ODR stream, const char *query,
+ int *position, int *num_entries, ZebraScanEntry **entries,
+ int *is_partial)
+{
+ YAZ_PQF_Parser pqf_parser = yaz_pqf_create ();
+ Z_AttributesPlusTerm *zapt;
+ int *attributeSet;
+
+ if (!(zapt = yaz_pqf_scan(pqf_parser, stream, &attributeSet, query)))
+ {
+ yaz_pqf_destroy (pqf_parser);
+ return -1;
+ }
+ yaz_pqf_destroy (pqf_parser);
+ return zebra_scan(zh, stream, zapt, VAL_BIB1,
+ position, num_entries, entries, is_partial);
+}
+
int zebra_scan (ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt,
- oid_value attributeset,
- int *position, int *num_entries, ZebraScanEntry **entries,
- int *is_partial)
+ oid_value attributeset,
+ int *position, int *num_entries, ZebraScanEntry **entries,
+ int *is_partial)
{
ASSERTZH;
assert(stream);
int delete_w_handle(const char *info, void *handle)
{
ZebraHandle zh = (ZebraHandle) handle;
- ISAMC_P pos;
+ ISAM_P pos;
ASSERTZH;
if (*info == sizeof(pos))
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;
+ status->processed = (int) zh->records_processed;
+ status->inserted = (int) zh->records_inserted;
+ status->updated = (int) zh->records_updated;
+ status->deleted = (int) zh->records_deleted;
zebra_get_state (zh, &val, &seqno);
if (val != 'd')
*/
int zebra_search_PQF (ZebraHandle zh, const char *pqf_query,
- const char *setname, int *numhits)
+ const char *setname, zint *numhits)
{
- int hits = 0;
+ zint hits = 0;
int res = -1;
Z_RPNQuery *query;
ODR odr = odr_createmem(ODR_ENCODE);
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);
odr_destroy(odr);
- yaz_log(log_level, "Hits: %d",hits);
+ yaz_log(log_level, "Hits: " ZINT_FORMAT, hits);
if (numhits)
*numhits = hits;
return sort_status;
}
+struct BFiles_struct *zebra_get_bfs(ZebraHandle zh)
+{
+ if (zh && zh->reg)
+ return zh->reg->bfs;
+ return 0;
+}