X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=38bc75130621ce38d7544e45bba4b9120882c9a7;hb=b88909df16157ed1e7859bc3fad6b01520d4865e;hp=c40bce87a2df3fd81c3fb6cf10d776cb2b1ba824;hpb=ecb3935e78cd9bcfdebafdee0834cfb1060d7b5e;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index c40bce8..38bc751 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,5 +1,5 @@ -/* $Id: zebraapi.c,v 1.217 2006-05-10 08:13:23 adam Exp $ - Copyright (C) 1995-2005 +/* $Id: zebraapi.c,v 1.222 2006-06-13 12:02:12 adam Exp $ + Copyright (C) 1995-2006 Index Data ApS This file is part of the Zebra server. @@ -368,12 +368,7 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, reg->keys = zebra_rec_keys_open(); -#if NATTR reg->sortKeys = zebra_rec_keys_open(); -#else - reg->sortKeys.buf = 0; - reg->sortKeys.buf_max = 0; -#endif reg->records = 0; reg->dict = 0; @@ -388,7 +383,6 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, /* installing rank classes */ zebraRankInstall (reg, rank_1_class); - zebraRankInstall (reg, rank_zv_class); zebraRankInstall (reg, rank_similarity_class); zebraRankInstall (reg, rank_static_class); @@ -484,7 +478,7 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, { reg->zei = zebraExplain_open(reg->records, reg->dh, res, rw, reg, - explain_extract); + zebra_extract_explain); if (!reg->zei) { yaz_log (YLOG_WARN, "Cannot obtain EXPLAIN information"); @@ -551,11 +545,7 @@ static void zebra_register_close(ZebraService zs, struct zebra_register *reg) data1_destroy (reg->dh); zebra_rec_keys_close(reg->keys); -#if NATTR zebra_rec_keys_close(reg->sortKeys); -#else - xfree(reg->sortKeys.buf); -#endif xfree(reg->key_buf); xfree(reg->name); @@ -585,7 +575,7 @@ ZEBRA_RES zebra_stop(ZebraService zs) return ZEBRA_OK; } -ZEBRA_RES zebra_close (ZebraHandle zh) +ZEBRA_RES zebra_close(ZebraHandle zh) { ZebraService zs; struct zebra_session **sp; @@ -1408,15 +1398,15 @@ ZEBRA_RES zebra_admin_exchange_record(ZebraHandle zh, } action = 1; /* make it an insert (if it's an update).. */ } - res = buffer_extract_record (zh, rec_buf, rec_len, - action == 3 ? 1 : 0 /* delete flag */, - 0, /* test mode */ - 0, /* recordType */ - &sysno, - 0, /* match */ - 0, /* fname */ - 0, /* force update */ - 1 /* allow update */ + res = zebra_buffer_extract_record(zh, rec_buf, rec_len, + action == 3 ? 1 : 0 /* delete flag */, + 0, /* test mode */ + 0, /* recordType */ + &sysno, + 0, /* match */ + 0, /* fname */ + 0, /* force update */ + 1 /* allow update */ ); if (res == ZEBRA_FAIL) { @@ -1910,10 +1900,10 @@ ZEBRA_RES zebra_end_transaction (ZebraHandle zh, ZebraTransactionStatus *status) zh->records_processed, zh->records_inserted, zh->records_updated, zh->records_deleted); - status->processed = (int) zh->records_processed; - status->inserted = (int) zh->records_inserted; - status->updated = (int) zh->records_updated; - status->deleted = (int) zh->records_deleted; + status->processed = zh->records_processed; + status->inserted = zh->records_inserted; + status->updated = zh->records_updated; + status->deleted = zh->records_deleted; zebra_get_state (zh, &val, &seqno); if (val != 'd') @@ -1943,31 +1933,33 @@ ZEBRA_RES zebra_end_transaction (ZebraHandle zh, ZebraTransactionStatus *status) return ZEBRA_OK; } -int zebra_repository_update (ZebraHandle zh, const char *path) +ZEBRA_RES zebra_repository_update(ZebraHandle zh, const char *path) { ASSERTZH; assert(path); yaz_log (log_level, "updating %s", path); - repositoryUpdate (zh, path); - return 0; + + 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); } -int zebra_repository_delete (ZebraHandle zh, const char *path) +ZEBRA_RES zebra_repository_delete(ZebraHandle zh, const char *path) { ASSERTZH; assert(path); yaz_log (log_level, "deleting %s", path); - repositoryDelete (zh, path); - return 0; + return zebra_delete_from_path(zh, path); } -int zebra_repository_show (ZebraHandle zh, const char *path) +ZEBRA_RES zebra_repository_show(ZebraHandle zh, const char *path) { ASSERTZH; assert(path); yaz_log(log_level, "zebra_repository_show"); repositoryShow (zh, path); - return 0; + return ZEBRA_OK; } static ZEBRA_RES zebra_commit_ex(ZebraHandle zh, int clean_only) @@ -2205,38 +2197,17 @@ void zebra_set_shadow_enable (ZebraHandle zh, int value) zh->shadow_enable = value; } -/* Used by Perl API.. Added the record buffer dup to zebra_records_retrieve - so that it's identicical to the original api_records_retrieve */ -void api_records_retrieve (ZebraHandle zh, ODR stream, - const char *setname, Z_RecordComposition *comp, - oid_value input_format, int num_recs, - ZebraRetrievalRecord *recs) -{ - zebra_records_retrieve(zh, stream, setname, comp, input_format, - num_recs, recs); -} - -/* --------------------------------------------------------------------------- - Record insert(=update), delete - - If sysno is provided, then it's used to identify the record. - If not, and match_criteria is provided, then sysno is guessed - If not, and a record is provided, then sysno is got from there -NOTE: Now returns 0 at success and updates sysno, which is an int* - 20-jun-2003 Heikki -*/ - -int zebra_add_record(ZebraHandle zh, - const char *buf, int buf_size) +ZEBRA_RES zebra_add_record(ZebraHandle zh, + const char *buf, int buf_size) { return zebra_update_record(zh, 0, 0 /* sysno */, 0, 0, buf, buf_size, 0); } -ZEBRA_RES zebra_insert_record (ZebraHandle zh, - const char *recordType, - SYSNO *sysno, const char *match, - const char *fname, - const char *buf, int buf_size, int force_update) +ZEBRA_RES zebra_insert_record(ZebraHandle zh, + const char *recordType, + SYSNO *sysno, const char *match, + const char *fname, + const char *buf, int buf_size, int force_update) { ZEBRA_RES res; ASSERTZH; @@ -2249,14 +2220,14 @@ ZEBRA_RES zebra_insert_record (ZebraHandle zh, if (zebra_begin_trans(zh, 1) == ZEBRA_FAIL) return ZEBRA_FAIL; - res = buffer_extract_record (zh, buf, buf_size, - 0, /* delete_flag */ - 0, /* test_mode */ - recordType, - sysno, - match, fname, - 0, - 0); /* allow_update */ + res = zebra_buffer_extract_record(zh, buf, buf_size, + 0, /* delete_flag */ + 0, /* test_mode */ + recordType, + sysno, + match, fname, + 0, + 0); /* allow_update */ if (zebra_end_trans(zh) != ZEBRA_OK) { yaz_log(YLOG_WARN, "zebra_end_trans failed"); @@ -2286,14 +2257,14 @@ ZEBRA_RES zebra_update_record (ZebraHandle zh, if (zebra_begin_trans(zh, 1) == ZEBRA_FAIL) return ZEBRA_FAIL; - res = buffer_extract_record (zh, buf, buf_size, - 0, /* delete_flag */ - 0, /* test_mode */ - recordType, - sysno, - match, fname, - force_update, - 1); /* allow_update */ + res = zebra_buffer_extract_record(zh, buf, buf_size, + 0, /* delete_flag */ + 0, /* test_mode */ + recordType, + sysno, + match, fname, + force_update, + 1); /* allow_update */ if (zebra_end_trans(zh) != ZEBRA_OK) { yaz_log(YLOG_WARN, "zebra_end_trans failed"); @@ -2322,14 +2293,14 @@ ZEBRA_RES zebra_delete_record (ZebraHandle zh, if (zebra_begin_trans(zh, 1) == ZEBRA_FAIL) return ZEBRA_FAIL; - res = buffer_extract_record (zh, buf, buf_size, - 1, /* delete_flag */ - 0, /* test_mode */ - recordType, - sysno, - match,fname, - force_update, - 1); /* allow_update */ + res = zebra_buffer_extract_record(zh, buf, buf_size, + 1, /* delete_flag */ + 0, /* test_mode */ + recordType, + sysno, + match,fname, + force_update, + 1); /* allow_update */ if (zebra_end_trans(zh) != ZEBRA_OK) { yaz_log(YLOG_WARN, "zebra_end_trans failed");