Allow dict_close of 0 pointer
[idzebra-moved-to-github.git] / index / zinfo.c
index 69a3bad..b474306 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: zinfo.c,v 1.53 2005-12-13 13:47:35 adam Exp $
+/* $Id: zinfo.c,v 1.55 2006-02-20 12:41:42 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -1450,8 +1450,12 @@ int zebraExplain_lookup_ord (ZebraExplainInfo zei, int ord,
     struct zebDatabaseInfoB *zdb;
     for (zdb = zei->databaseInfo; zdb; zdb = zdb->next)
     {
-       struct zebSUInfoB *zsui = zdb->attributeDetails->SUInfo;
-       for ( ;zsui; zsui = zsui->next)
+       struct zebSUInfoB *zsui;
+
+       if (zdb->attributeDetails->readFlag)
+           zebraExplain_readAttributeDetails (zei, zdb->attributeDetails);
+           
+       for (zsui = zdb->attributeDetails->SUInfo; zsui; zsui = zsui->next)
            if (zsui->info.ordinal == ord)
            {
                if (db)
@@ -1609,6 +1613,13 @@ static void att_loadset(void *p, const char *n, const char *name)
        yaz_log(YLOG_WARN, "Directive attset failed for %s", name);
 }
 
+int zebraExplain_get_database_ord(ZebraExplainInfo zei)
+{
+    if (!zei->curDatabaseInfo)
+       return -1;
+    return zei->curDatabaseInfo->ordinalDatabase;
+}
+
 void zebraExplain_loadAttsets (data1_handle dh, Res res)
 {
     res_trav(res, "attset", dh, att_loadset);