X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzinfo.c;h=a5c05a9e1c294b926e10a0b54a7bf6d927414450;hb=9637ba0802eb0fe437c1f0d277dd3c524981ba56;hp=fc355db4f0497a6a20c9b8697b1838bbb4d04c0a;hpb=c093259af1129171ffb244fe10f5110d7463d88d;p=idzebra-moved-to-github.git diff --git a/index/zinfo.c b/index/zinfo.c index fc355db..a5c05a9 100644 --- a/index/zinfo.c +++ b/index/zinfo.c @@ -1,4 +1,4 @@ -/* $Id: zinfo.c,v 1.47 2005-08-05 10:40:13 adam Exp $ +/* $Id: zinfo.c,v 1.52 2005-12-08 11:10:03 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -345,6 +345,7 @@ ZebraExplainInfo zebraExplain_open ( yaz_log (YLOG_LOG, "zebraExplain_open wr=%d", writeFlag); #endif zei = (ZebraExplainInfo) nmem_malloc (nmem, sizeof(*zei)); + zei->databaseInfo = 0; zei->write_flag = writeFlag; zei->updateHandle = updateHandle; zei->updateFunc = updateFunc; @@ -373,7 +374,7 @@ ZebraExplainInfo zebraExplain_open ( 0, 0, 0, 0, 0, 0); } zdip = &zei->databaseInfo; - trec = rec_get (records, 1); /* get "root" record */ + trec = rec_get_root(records); /* get "root" record */ zei->ordinalSU = 1; zei->runNumber = 0; @@ -1309,7 +1310,7 @@ static void zebraExplain_writeTarget (ZebraExplainInfo zei, int key_flush) return; zei->dirty = 0; - trec = rec_get (zei->records, 1); + trec = rec_get_root(zei->records); xfree (trec->info[recInfo_storeData]); node_tgtinfo = data1_search_tag (zei->dh, zei->data1_target, @@ -1416,19 +1417,28 @@ int zebraExplain_trav_ord(ZebraExplainInfo zei, void *handle, } int zebraExplain_lookup_ord (ZebraExplainInfo zei, int ord, - const char **db, int *set, int *use) + int *index_type, + const char **db, + int *set, int *use) { struct zebDatabaseInfoB *zdb; for (zdb = zei->databaseInfo; zdb; zdb = zdb->next) { struct zebSUInfoB *zsui = zdb->attributeDetails->SUInfo; for ( ;zsui; zsui = zsui->next) - if (zsui->info.which == ZEB_SU_SET_USE && - zsui->info.ordinal == ord) + if (zsui->info.ordinal == ord) { - *db = zdb->databaseName; - *set = zsui->info.u.su.set; - *use = zsui->info.u.su.use; + if (db) + *db = zdb->databaseName; + if (zsui->info.which == ZEB_SU_SET_USE) + { + if (set) + *set = zsui->info.u.su.set; + if (use) + *use = zsui->info.u.su.use; + } + if (index_type) + *index_type = zsui->info.index_type; return 0; } } @@ -1562,6 +1572,7 @@ RecordAttr *rec_init_attr (ZebraExplainInfo zei, Record rec) recordAttr->recordSize = 0; recordAttr->recordOffset = 0; recordAttr->runNumber = zei->runNumber; + recordAttr->staticrank = 0; return recordAttr; }