- 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);
+ }