Moved loggin utilities to Yaz. Was implemented in file zlogs.c.
[idzebra-moved-to-github.git] / index / zebraapi.c
index 6f56a05..848e24e 100644 (file)
@@ -4,7 +4,13 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: zebraapi.c,v $
- * Revision 1.10  1998-09-22 10:03:42  adam
+ * Revision 1.12  1998-11-16 10:18:10  adam
+ * Better error reporting for result sets.
+ *
+ * Revision 1.11  1998/10/16 08:14:34  adam
+ * Updated record control system.
+ *
+ * Revision 1.10  1998/09/22 10:03:42  adam
  * Changed result sets to be persistent in the sense that they can
  * be re-searched if needed.
  * Fixed memory leak in rsm_or.
@@ -178,7 +184,9 @@ ZebraHandle zebra_open (const char *configName)
     zh->sets = NULL;
     zh->registerState = -1;  /* trigger open of registers! */
     zh->registerChange = 0;
-    
+    zh->recTypes = recTypes_init (zh->dh);
+    recTypes_default_handlers (zh->recTypes);
+
     zh->records = NULL;
     zh->zebra_maps = zebra_maps_open (zh->res);
     zh->rank_classes = NULL;
@@ -215,6 +223,7 @@ void zebra_close (ZebraHandle zh)
         rec_close (&zh->records);
         zebra_register_unlock (zh);
     }
+    recTypes_destroy (zh->recTypes);
     zebra_maps_close (zh->zebra_maps);
     zebraRankDestroy (zh);
     bfs_destroy (zh->bfs);
@@ -261,7 +270,8 @@ void zebra_records_retrieve (ZebraHandle zh, ODR stream,
     if (!poset)
     {
         logf (LOG_DEBUG, "zebraPosSetCreate error");
-        zh->errCode = 13;
+        zh->errCode = 30;
+        zh->errString = nmem_strdup (stream->mem, setname);
     }
     else
     {
@@ -269,8 +279,12 @@ void zebra_records_retrieve (ZebraHandle zh, ODR stream,
        {
            if (!poset[i].sysno)
            {
+               char num_str[20];
+
+               sprintf (num_str, "%d", pos_array[i]);  
                zh->errCode = 13;
-               logf (LOG_DEBUG, "Out of range. pos=%d", pos_array[i]);
+                zh->errString = nmem_strdup (stream->mem, num_str);
+                break;
            }
            else
            {