Split function rpn_scan in two.
[idzebra-moved-to-github.git] / index / zebraapi.c
index 61268c2..6b60956 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: zebraapi.c,v 1.225 2006-08-16 13:16:36 adam Exp $
+/* $Id: zebraapi.c,v 1.227 2006-09-11 22:57:54 adam Exp $
    Copyright (C) 1995-2006
    Index Data ApS
 
@@ -772,8 +772,10 @@ static void zebra_select_register (ZebraHandle zh, const char *new_reg)
     {
        if (res_get_int(zh->res, "segment", &zh->m_segment_indexing) == 
             ZEBRA_OK)
-           yaz_log(YLOG_LOG, "segment indexing set and is %d",
+        {
+           yaz_log(YLOG_DEBUG, "segment indexing set and is %d",
                     zh->m_segment_indexing);
+        }
     }
 }
 
@@ -1483,12 +1485,20 @@ ZEBRA_RES zebra_drop_database(ZebraHandle zh, const char *db)
     if (zh->reg->isamb)
     {
        int db_ord;
-       zebraExplain_curDatabase (zh->reg->zei, db);
-       db_ord = zebraExplain_get_database_ord(zh->reg->zei);
-       dict_delete_subtree_ord(zh->reg->matchDict, db_ord,
-                               0 /* handle */, 0 /* func */);
-       zebraExplain_trav_ord(zh->reg->zei, zh, delete_SU_handle);
-       zebraExplain_removeDatabase(zh->reg->zei, zh);
+       if (zebraExplain_curDatabase (zh->reg->zei, db))
+        {
+            zebra_setError(zh, YAZ_BIB1_DATABASE_DOES_NOT_EXIST, db);
+            ret = ZEBRA_FAIL;
+        }
+        else
+        {
+            db_ord = zebraExplain_get_database_ord(zh->reg->zei);
+            dict_delete_subtree_ord(zh->reg->matchDict, db_ord,
+                                    0 /* handle */, 0 /* func */);
+            zebraExplain_trav_ord(zh->reg->zei, zh, delete_SU_handle);
+            zebraExplain_removeDatabase(zh->reg->zei, zh);
+            zebra_remove_file_match(zh);
+        }
     }
     else
     {