-/* $Id: zebraapi.c,v 1.268 2007-12-18 13:55:28 adam Exp $
- Copyright (C) 1995-2007
- Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+ Copyright (C) 1995-2008 Index Data
Zebra is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
sort_type = ZEBRA_SORT_TYPE_FLAT;
else if (res_get_match(res, "sortindex", "i", "f"))
sort_type = ZEBRA_SORT_TYPE_ISAMB;
+ else if (res_get_match(res, "sortindex", "m", "f"))
+ sort_type = ZEBRA_SORT_TYPE_MULTI;
else
{
yaz_log(YLOG_WARN, "bad_value for 'sortindex'");
ZEBRA_RES zebra_repository_update(ZebraHandle zh, const char *path)
{
- ASSERTZH;
- assert(path);
- yaz_log(log_level, "updating %s", path);
-
- if (zh->m_record_id && !strcmp(zh->m_record_id, "file"))
- return zebra_update_file_match(zh, path);
- else
- return zebra_update_from_path(zh, path);
+ return zebra_repository_index(zh, path, action_update);
}
ZEBRA_RES zebra_repository_delete(ZebraHandle zh, const char *path)
{
+ return zebra_repository_index(zh, path, action_delete);
+}
+
+ZEBRA_RES zebra_repository_index(ZebraHandle zh, const char *path,
+ enum zebra_recctrl_action_t action)
+{
ASSERTZH;
assert(path);
- yaz_log(log_level, "deleting %s", path);
- return zebra_delete_from_path(zh, path);
+
+ if (action == action_update)
+ yaz_log(log_level, "updating %s", path);
+ else if (action == action_delete)
+ yaz_log(log_level, "deleting %s", path);
+ else if (action == action_a_delete)
+ yaz_log(log_level, "attempt deleting %s", path);
+ else
+ yaz_log(log_level, "update action=%d", (int) action);
+
+ if (zh->m_record_id && !strcmp(zh->m_record_id, "file"))
+ return zebra_update_file_match(zh, path);
+ else
+ return zebra_update_from_path(zh, path, action);
}
ZEBRA_RES zebra_repository_show(ZebraHandle zh, const char *path)