X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=32b47935dd2e63f8c11172605e158b043e4fb647;hb=3c32ec08b365ba1cbfa705d7cbefca5b7b4afe28;hp=8cdaa51b9da3d14ee1980d23b5e0b94aec4bb927;hpb=ddcf0c647f3685b150885b547cd7d7cb71d5f722;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 8cdaa51..32b4793 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.195 2005-12-07 17:00:46 adam Exp $ +/* $Id: zebraapi.c,v 1.198 2005-12-09 10:56:59 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -1099,7 +1099,7 @@ ZEBRA_RES zebra_scan(ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt, assert(is_partial); assert(entries); yaz_log(log_level, "zebra_scan"); - zebra_clearError(zh); + if (zebra_begin_read (zh) == ZEBRA_FAIL) { *entries = 0; @@ -1139,7 +1139,7 @@ ZEBRA_RES zebra_sort (ZebraHandle zh, ODR stream, assert(sort_sequence); assert(sort_status); yaz_log(log_level, "zebra_sort"); - zebra_clearError(zh); + if (zebra_begin_read(zh) == ZEBRA_FAIL) return ZEBRA_FAIL; res = resultSetSort(zh, stream->mem, num_input_setnames, input_setnames, @@ -1367,7 +1367,7 @@ ZEBRA_RES zebra_admin_exchange_record (ZebraHandle zh, &sysno, 0, /* match */ 0, /* fname */ - 0, /* force update */ + 0, /* force update */ 1 /* allow update */ ); if (res == ZEBRA_FAIL) @@ -1421,7 +1421,6 @@ ZEBRA_RES zebra_drop_database(ZebraHandle zh, const char *db) ZEBRA_RES ret = ZEBRA_OK; ASSERTZH; yaz_log(log_level, "zebra_drop_database %s", db); - zebra_clearError(zh); if (zebra_select_database (zh, db) == ZEBRA_FAIL) return ZEBRA_FAIL; @@ -1437,6 +1436,8 @@ ZEBRA_RES zebra_drop_database(ZebraHandle zh, const char *db) else { yaz_log(YLOG_WARN, "drop database only supported for isam:b"); + zebra_setError(zh, YAZ_BIB1_ES_IMMEDIATE_EXECUTION_FAILED, + "drop database only supported for isam:b"); ret = ZEBRA_FAIL; } zebra_end_trans (zh); @@ -1448,7 +1449,6 @@ ZEBRA_RES zebra_create_database (ZebraHandle zh, const char *db) ASSERTZH; yaz_log(log_level, "zebra_create_database %s", db); assert(db); - zebra_clearError(zh); if (zebra_select_database (zh, db) == ZEBRA_FAIL) return ZEBRA_FAIL; @@ -1475,7 +1475,7 @@ int zebra_string_norm (ZebraHandle zh, unsigned reg_id, assert(input_str); assert(output_str); yaz_log(log_level, "zebra_string_norm "); - zebra_clearError(zh); + if (!zh->reg->zebra_maps) return -1; wrbuf = zebra_replace(zh->reg->zebra_maps, reg_id, "", @@ -1498,7 +1498,6 @@ static void zebra_set_state (ZebraHandle zh, int val, int seqno) FILE *f; ASSERTZH; yaz_log(log_level, "zebra_set_state v=%d seq=%d", val, seqno); - zebra_clearError(zh); sprintf (state_fname, "state.%s.LCK", zh->reg_name); fname = zebra_mk_fname (res_get(zh->res, "lockDir"), state_fname); @@ -1518,7 +1517,7 @@ static void zebra_get_state (ZebraHandle zh, char *val, int *seqno) ASSERTZH; yaz_log(log_level, "zebra_get_state "); - zebra_clearError(zh); + sprintf (state_fname, "state.%s.LCK", zh->reg_name); fname = zebra_mk_fname (res_get(zh->res, "lockDir"), state_fname); f = fopen (fname, "r"); @@ -1624,8 +1623,6 @@ ZEBRA_RES zebra_begin_trans(ZebraHandle zh, int rw) } zh->trans_w_no = zh->trans_no; - zebra_clearError(zh); - zh->records_inserted = 0; zh->records_updated = 0; zh->records_deleted = 0; @@ -1719,7 +1716,6 @@ ZEBRA_RES zebra_begin_trans(ZebraHandle zh, int rw) zebra_flush_reg (zh); return ZEBRA_OK; } - zebra_clearError(zh); #if HAVE_SYS_TIMES_H times (&zh->tms1); #endif @@ -2157,8 +2153,7 @@ NOTE: Now returns 0 at success and updates sysno, which is an int* int zebra_add_record(ZebraHandle zh, const char *buf, int buf_size) { - SYSNO sysno = 0; - return zebra_update_record(zh, 0, &sysno, 0, 0, buf, buf_size, 0); + return zebra_update_record(zh, 0, 0 /* sysno */, 0, 0, buf, buf_size, 0); } ZEBRA_RES zebra_insert_record (ZebraHandle zh, @@ -2199,10 +2194,11 @@ ZEBRA_RES zebra_update_record (ZebraHandle zh, { ZEBRA_RES res; ASSERTZH; - assert(sysno); assert(buf); - yaz_log(log_level, "zebra_update_record sysno=" ZINT_FORMAT, *sysno); + yaz_log(log_level, "zebra_update_record"); + if (sysno) + yaz_log(log_level, " sysno=" ZINT_FORMAT, *sysno); if (buf_size < 1) buf_size = strlen(buf);