X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzinfo.c;h=4f5509b8ed379e241764f3957f461585eb41faac;hb=ee67c6573539584ff255e11ad752a6014074c987;hp=daf64f9a70379f4b7d93f034cc3cd2246729f375;hpb=f4e5e779697a3a44134b7af483817e83ce8cfcb0;p=idzebra-moved-to-github.git diff --git a/index/zinfo.c b/index/zinfo.c index daf64f9..4f5509b 100644 --- a/index/zinfo.c +++ b/index/zinfo.c @@ -1,79 +1,9 @@ /* - * Copyright (C) 1994-1999, Index Data + * Copyright (C) 1994-2002, Index Data * All rights reserved. * Sebastian Hammer, Adam Dickmeiss * - * $Log: zinfo.c,v $ - * Revision 1.20 2000-11-29 14:24:01 adam - * Script configure uses yaz pthreads options. Added locking for - * zebra_register_{lock,unlock}. - * - * Revision 1.19 2000/07/07 12:49:20 adam - * Optimized resultSetInsert{Rank,Sort}. - * - * Revision 1.18 2000/03/20 19:08:36 adam - * Added remote record import using Z39.50 extended services and Segment - * Requests. - * - * Revision 1.17 1999/07/14 10:53:51 adam - * Updated various routines to handle missing explain schema. - * - * Revision 1.16 1999/05/26 07:49:13 adam - * C++ compilation. - * - * Revision 1.15 1999/01/25 13:47:54 adam - * Fixed bug. - * - * Revision 1.14 1998/11/04 16:31:32 adam - * Fixed bug regarding recordBytes in databaseInfo. - * - * Revision 1.13 1998/11/03 10:17:09 adam - * Fixed bug regarding creation of some data1 nodes for Explain records. - * - * Revision 1.12 1998/10/13 20:37:11 adam - * Changed the way attribute sets are saved in Explain database to - * reflect "dynamic" OIDs. - * - * Revision 1.11 1998/06/09 12:16:48 adam - * Implemented auto-generation of CategoryList records. - * - * Revision 1.10 1998/06/08 14:43:15 adam - * Added suport for EXPLAIN Proxy servers - added settings databasePath - * and explainDatabase to facilitate this. Increased maximum number - * of databases and attributes in one register. - * - * Revision 1.9 1998/06/02 12:10:27 adam - * Fixed bug related to attributeDetails. - * - * Revision 1.8 1998/05/20 10:12:20 adam - * Implemented automatic EXPLAIN database maintenance. - * Modified Zebra to work with ASN.1 compiled version of YAZ. - * - * Revision 1.7 1998/03/05 08:45:13 adam - * New result set model and modular ranking system. Moved towards - * descent server API. System information stored as "SGML" records. - * - * Revision 1.6 1998/02/17 10:29:27 adam - * Moved towards 'automatic' EXPLAIN database. - * - * Revision 1.5 1997/10/27 14:33:05 adam - * Moved towards generic character mapping depending on "structure" - * field in abstract syntax file. Fixed a few memory leaks. Fixed - * bug with negative integers when doing searches with relational - * operators. - * - * Revision 1.4 1997/09/25 14:57:08 adam - * Added string.h. - * - * Revision 1.3 1996/05/22 08:21:59 adam - * Added public ZebDatabaseInfo structure. - * - * Revision 1.2 1996/05/14 06:16:41 adam - * Compact use/set bytes used in search service. - * - * Revision 1.1 1996/05/13 14:23:07 adam - * Work on compaction of set/use bytes in dictionary. - * + * $Id: zinfo.c,v 1.24 2002-02-20 23:07:54 adam Exp $ */ #include @@ -339,6 +269,8 @@ static Record createRecord (Records records, int *sysno) void zebraExplain_flush (ZebraExplainInfo zei, int writeFlag, void *handle) { + if (!zei) + return; zei->updateHandle = handle; if (writeFlag) { @@ -762,7 +694,7 @@ static void zebraExplain_readDatabase (ZebraExplainInfo zei, { zdi->recordCount = atoi_n (np->child->u.data.data, np->child->u.data.len); - } + } zdi->readFlag = 0; rec_rm (&rec); } @@ -1369,6 +1301,25 @@ int zebraExplain_lookupSU (ZebraExplainInfo zei, int set, int use) return -1; } +int zebraExplain_lookup_ord (ZebraExplainInfo zei, int ord, + const char **db, int *set, int *use) +{ + struct zebDatabaseInfoB *zdb; + for (zdb = zei->databaseInfo; zdb; zdb = zdb->next) + { + struct zebSUInfoB *zsui = zdb->attributeDetails->SUInfo; + for ( ;zsui; zsui = zsui->next) + if (zsui->info.ordinal == ord) + { + *db = zdb->databaseName; + *set = zsui->info.set; + *use = zsui->info.use; + return 0; + } + } + return -1; +} + zebAccessObject zebraExplain_announceOid (ZebraExplainInfo zei, zebAccessObject *op, Odr_oid *oid)