Version 1.1.
[idzebra-moved-to-github.git] / index / zinfo.c
index 989cad8..0565a00 100644 (file)
@@ -1,10 +1,20 @@
 /*
- * Copyright (C) 1994-1999, Index Data
+ * Copyright (C) 1994-2000, Index Data
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: zinfo.c,v $
- * Revision 1.19  2000-07-07 12:49:20  adam
+ * Revision 1.22  2001-10-15 19:53:43  adam
+ * POSIX thread updates. First work on term sets.
+ *
+ * Revision 1.21  2000/12/05 10:01:44  adam
+ * Fixed bug regarding user-defined attribute sets.
+ *
+ * Revision 1.20  2000/11/29 14:24:01  adam
+ * Script configure uses yaz pthreads options. Added locking for
+ * zebra_register_{lock,unlock}.
+ *
+ * Revision 1.19  2000/07/07 12:49:20  adam
  * Optimized resultSetInsert{Rank,Sort}.
  *
  * Revision 1.18  2000/03/20 19:08:36  adam
@@ -186,16 +196,11 @@ static data1_node *data1_add_tag (data1_handle dh, data1_node *at,
                                  const char *tag, NMEM nmem)
 {
     data1_node *partag = get_parent_tag(dh, at);
-    data1_node *res = data1_mk_node (dh, nmem);
+    data1_node *res = data1_mk_node_type (dh, nmem, DATA1N_tag);
     data1_element *e = NULL;
 
     res->parent = at;
-    res->which = DATA1N_tag;
     res->u.tag.tag = data1_insert_string (dh, res, nmem, tag);
-    res->u.tag.node_selected = 0;
-    res->u.tag.make_variantlist = 0;
-    res->u.tag.no_data_requested = 0;
-    res->u.tag.get_bytes = -1;
    
     if (partag)
        e = partag->u.tag.element;
@@ -763,7 +768,7 @@ static void zebraExplain_readDatabase (ZebraExplainInfo zei,
     {
        zdi->recordCount = atoi_n (np->child->u.data.data,
                                   np->child->u.data.len);
-    }    
+    }
     zdi->readFlag = 0;
     rec_rm (&rec);
 }
@@ -1370,6 +1375,25 @@ int zebraExplain_lookupSU (ZebraExplainInfo zei, int set, int use)
     return -1;
 }
 
+int zebraExplain_lookup_ord (ZebraExplainInfo zei, int ord,
+                            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.ordinal == ord)
+           {
+               *db = zdb->databaseName;
+               *set = zsui->info.set;
+               *use = zsui->info.use;
+               return 0;
+           }
+    }
+    return -1;
+}
+
 zebAccessObject zebraExplain_announceOid (ZebraExplainInfo zei,
                                          zebAccessObject *op,
                                          Odr_oid *oid)