X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=c2ae1d2498f2ad2c08cc0452e48c40bc6c65b784;hb=399876019df22a56614e9fda05552574939ccc0d;hp=bb0c06fbe0f1d7a9ed0e838ec1ddb34bcfa29017;hpb=7e75317bed8eecabcb57e59b16093a32238738e2;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index bb0c06f..c2ae1d2 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2002, Index Data * All rights reserved. * - * $Id: zebraapi.c,v 1.45 2002-02-20 17:30:01 adam Exp $ + * $Id: zebraapi.c,v 1.46 2002-02-20 23:07:54 adam Exp $ */ #include @@ -34,9 +34,6 @@ static void zebra_chdir (ZebraService zh) static void zebra_flush_reg (ZebraHandle zh) { - if (zh->service->matchDict) - dict_close (zh->service->matchDict); - zh->service->matchDict = 0; zebraExplain_flush (zh->service->zei, 1, zh); extract_flushWriteKeys (zh); @@ -152,7 +149,6 @@ static int zebra_register_activate (ZebraHandle zh, int rw, int useshadow) zs->recTypes = recTypes_init (zs->dh); recTypes_default_handlers (zs->recTypes); - zs->records = NULL; zs->zebra_maps = zebra_maps_open (zs->res); zs->rank_classes = NULL; @@ -160,12 +156,14 @@ static int zebra_register_activate (ZebraHandle zh, int rw, int useshadow) zs->dict = 0; zs->sortIdx = 0; zs->isams = 0; + zs->matchDict = 0; #if ZMBOL zs->isam = 0; zs->isamc = 0; zs->isamd = 0; #endif zs->zei = 0; + zs->matchDict = 0; zebraRankInstall (zs, rank1_class); @@ -181,6 +179,10 @@ static int zebra_register_activate (ZebraHandle zh, int rw, int useshadow) logf (LOG_WARN, "rec_open"); return -1; } + if (rw) + { + zs->matchDict = dict_open (zs->bfs, GMATCH_DICT, 50, 1, 0); + } if (!(zs->dict = dict_open (zs->bfs, FNAME_DICT, 80, rw, 0))) { logf (LOG_WARN, "dict_open"); @@ -282,6 +284,8 @@ static int zebra_register_deactivate (ZebraHandle zh) { zebraExplain_close (zs->zei, 0); dict_close (zs->dict); + if (zs->matchDict) + dict_close (zs->matchDict); sortIdx_close (zs->sortIdx); if (zs->isams) isams_close (zs->isams); @@ -716,12 +720,14 @@ static int zebra_begin_read (ZebraHandle zh) char val; int seqno; - zebra_flush_reg (zh); (zh->trans_no)++; if (zh->trans_no != 1) + { + zebra_flush_reg (zh); return 0; + } zebra_get_state (&val, &seqno); if (val == 'd') @@ -832,8 +838,6 @@ void zebra_begin_trans (ZebraHandle zh) zebra_set_state ('d', seqno); zebra_register_activate (zh, 1, rval ? 1 : 0); - zh->service->matchDict = dict_open (zh->service->bfs, GMATCH_DICT, - 50, 1, 0); zh->seqno = seqno; }