POSIX thread updates. First work on term sets.
[idzebra-moved-to-github.git] / index / zebraapi.c
index d2f6d9b..3cd3a10 100644 (file)
@@ -3,7 +3,14 @@
  * All rights reserved.
  *
  * $Log: zebraapi.c,v $
- * Revision 1.42  2000-12-05 10:01:44  adam
+ * Revision 1.44  2001-10-15 19:53:43  adam
+ * POSIX thread updates. First work on term sets.
+ *
+ * Revision 1.43  2000/12/05 12:22:53  adam
+ * Termlist source implemented (so that we can index values of XML/SGML
+ * attributes).
+ *
+ * Revision 1.42  2000/12/05 10:01:44  adam
  * Fixed bug regarding user-defined attribute sets.
  *
  * Revision 1.41  2000/12/01 17:59:08  adam
@@ -221,7 +228,7 @@ static int zebra_register_lock (ZebraHandle zh, int rw)
        logf (LOG_LOG, "Register in read/write mode");
     else if (zh->service->registerState == state)
     {
-        logf (LOG_LOG, "registerChange = %ld lastChange = %ld",
+        logf (LOG_DEBUG, "registerChange = %ld lastChange = %ld",
             (long) zh->service->registerChange, (long)lastChange);
        if (zh->service->registerChange >= lastChange)
         {
@@ -661,16 +668,15 @@ void zebra_records_retrieve (ZebraHandle zh, ODR stream,
     {
        for (i = 0; i<num_recs; i++)
        {
-           if (!poset[i].sysno)
+           if (poset[i].term)
            {
-               char num_str[20];
-
-               sprintf (num_str, "%d", pos_array[i]);  
-               zh->errCode = 13;
-                zh->errString = nmem_strdup (stream->mem, num_str);
-                break;
+               recs[i].errCode = 0;
+               recs[i].format = VAL_SUTRS;
+               recs[i].len = strlen(poset[i].term);
+               recs[i].buf = poset[i].term;
+               recs[i].base = poset[i].db;
            }
-           else
+           else if (poset[i].sysno)
            {
                recs[i].errCode =
                    zebra_record_fetch (zh, poset[i].sysno, poset[i].score,
@@ -680,6 +686,15 @@ void zebra_records_retrieve (ZebraHandle zh, ODR stream,
                                        &recs[i].base);
                recs[i].errString = NULL;
            }
+           else
+           {
+               char num_str[20];
+
+               sprintf (num_str, "%d", pos_array[i]);  
+               zh->errCode = 13;
+                zh->errString = nmem_strdup (stream->mem, num_str);
+                break;
+           }
        }
        zebraPosSetDestroy (zh, poset, num_recs);
     }
@@ -1341,7 +1356,7 @@ static void extract_flushRecordKeys (ZebraHandle zh, SYSNO sysno,
 #endif
         assert (ch > 0);
        zh->key_buf_used +=
-           key_SU_code (ch,((char*)zh->key_buf) + zh->key_buf_used);
+           key_SU_encode (ch,((char*)zh->key_buf) + zh->key_buf_used);
 
         while (*src)
             ((char*)zh->key_buf) [(zh->key_buf_used)++] = *src++;