X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=b99874f79958d76aaebf68746dcbb6333ac5c4af;hb=2e4e9c6def27f1e1463dcb6f205fab6a98054f38;hp=5124ad20f7187777d67e77020d10926f18037aee;hpb=e408f6de48df5e13552ca72bb035f8b18f33d988;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 5124ad2..b99874f 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.119 2004-05-10 08:47:54 adam Exp $ +/* $Id: zebraapi.c,v 1.121 2004-08-04 08:35:23 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -147,7 +147,12 @@ ZebraHandle zebra_open (ZebraService zs) return zh; } -ZebraService zebra_start (const char *configName, Res def_res, Res over_res) +ZebraService zebra_start (const char *configName) +{ + return zebra_start_res(configName, 0, 0); +} + +ZebraService zebra_start_res (const char *configName, Res def_res, Res over_res) { Res res; @@ -244,6 +249,10 @@ struct zebra_register *zebra_register_open (ZebraService zs, const char *name, reg->keys.buf_max = 0; reg->keys.buf = 0; +#if IT_KEY_NEW + reg->keys.codec_handle = iscz1_start(); +#endif + reg->sortKeys.buf = 0; reg->sortKeys.buf_max = 0; @@ -254,7 +263,6 @@ struct zebra_register *zebra_register_open (ZebraService zs, const char *name, reg->matchDict = 0; reg->isam = 0; reg->isamc = 0; - reg->isamd = 0; reg->isamb = 0; reg->zei = 0; reg->matchDict = 0; @@ -319,17 +327,6 @@ struct zebra_register *zebra_register_open (ZebraService zs, const char *name, return 0; } } - if (res_get_match (res, "isam", "d", ISAM_DEFAULT)) - { - struct ISAMD_M_s isamd_m; - - if (!(reg->isamd = isamd_open (reg->bfs, FNAME_ISAMD, - rw, key_isamd_m(res, &isamd_m)))) - { - logf (LOG_WARN, "isamd_open"); - return 0; - } - } if (res_get_match (res, "isam", "b", ISAM_DEFAULT)) { struct ISAMC_M_s isamc_m; @@ -419,8 +416,6 @@ static void zebra_register_close (ZebraService zs, struct zebra_register *reg) is_close (reg->isam); if (reg->isamc) isc_close (reg->isamc); - if (reg->isamd) - isamd_close (reg->isamd); if (reg->isamb) isamb_close (reg->isamb); rec_close (®->records); @@ -434,6 +429,10 @@ static void zebra_register_close (ZebraService zs, struct zebra_register *reg) xfree (reg->sortKeys.buf); xfree (reg->keys.buf); +#if IT_KEY_NEW + if (reg->keys.codec_handle) + iscz1_stop(reg->keys.codec_handle); +#endif xfree (reg->key_buf); xfree (reg->name); @@ -1023,7 +1022,7 @@ int zebra_admin_import_end (ZebraHandle zh) int zebra_admin_import_segment (ZebraHandle zh, Z_Segment *segment) { - int sysno; + SYSNO sysno; int i; ASSERTZH; yaz_log(LOG_API,"zebra_admin_import_segment"); @@ -1067,7 +1066,7 @@ int zebra_admin_exchange_record (ZebraHandle zh, /* 3 = delete. Fail if does not exist */ /* 4 = update. Insert/replace */ { - int sysno = 0; + SYSNO sysno = 0; char *rinfo = 0; char recid_z[256]; ASSERTZH; @@ -1340,7 +1339,10 @@ int zebra_begin_trans (ZebraHandle zh, int rw) (zh->trans_no++); if (zh->trans_w_no) + { + read_res_for_transaction(zh); return 0; + } if (zh->trans_no != 1) { zh->errCode = 2; @@ -1940,17 +1942,17 @@ 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) { - int sysno = 0; + SYSNO sysno = 0; return zebra_update_record(zh, 0, &sysno, 0, 0, buf, buf_size, 0); } int zebra_insert_record (ZebraHandle zh, const char *recordType, - int *sysno, const char *match, const char *fname, - const char *buf, int buf_size) + SYSNO *sysno, const char *match, const char *fname, + const char *buf, int buf_size, int force_update) { int res; - yaz_log(LOG_API,"zebra_insert_record sysno=%d", *sysno); + yaz_log(LOG_API,"zebra_insert_record sysno=" ZINT_FORMAT, *sysno); if (buf_size < 1) buf_size = strlen(buf); @@ -1970,13 +1972,13 @@ int zebra_insert_record (ZebraHandle zh, int zebra_update_record (ZebraHandle zh, const char *recordType, - int* sysno, const char *match, const char *fname, + SYSNO* sysno, const char *match, const char *fname, const char *buf, int buf_size, int force_update) { int res; - yaz_log(LOG_API,"zebra_update_record sysno=%d", *sysno); + yaz_log(LOG_API,"zebra_update_record sysno=" ZINT_FORMAT, *sysno); if (buf_size < 1) buf_size = strlen(buf); @@ -1990,18 +1992,19 @@ int zebra_update_record (ZebraHandle zh, match, fname, force_update, 1); /* allow_update */ + yaz_log(LOG_LOG, "zebra_update_record returned res=%d", res); zebra_end_trans(zh); return res; } int zebra_delete_record (ZebraHandle zh, const char *recordType, - int *sysno, const char *match, const char *fname, + SYSNO *sysno, const char *match, const char *fname, const char *buf, int buf_size, int force_update) { int res; - yaz_log(LOG_API,"zebra_delete_record sysno=%d", *sysno); + yaz_log(LOG_API,"zebra_delete_record sysno=" ZINT_FORMAT, *sysno); if (buf_size < 1) buf_size = strlen(buf); @@ -2084,3 +2087,4 @@ int zebra_sort_by_specstr (ZebraHandle zh, zebra_end_read(zh); return sort_status; } +