X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fextract.c;h=73fe1a1b46065f9d615abe4233a72f0f57e82c38;hb=ee4ada9656faa612678aee238151a8b6652ad549;hp=baaa3419a4ece96a5068efad048c275092c0f772;hpb=896c0427df9d8eff5de6a1735dcd992e067df844;p=idzebra-moved-to-github.git diff --git a/index/extract.c b/index/extract.c index baaa341..73fe1a1 100644 --- a/index/extract.c +++ b/index/extract.c @@ -1,4 +1,4 @@ -/* $Id: extract.c,v 1.120 2002-08-02 19:26:55 adam Exp $ +/* $Id: extract.c,v 1.123 2002-08-29 10:00:15 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Index Data Aps @@ -40,6 +40,9 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define PRINTF_OFF_T "%ld" #endif +#define USE_SHELLSORT 0 + +#if USE_SHELLSORT static void shellsort(void *ar, int r, size_t s, int (*cmp)(const void *a, const void *b)) { @@ -62,7 +65,7 @@ static void shellsort(void *ar, int r, size_t s, memcpy (a+s*j, v, s); } } - +#endif static void logRecord (ZebraHandle zh) { @@ -411,19 +414,6 @@ struct recordLogInfo { struct recordGroup *rGroup; }; -static void recordLogPreamble (int level, const char *msg, void *info) -{ - struct recordLogInfo *p = (struct recordLogInfo *) info; - FILE *outf = yaz_log_file (); - - if (level & LOG_LOG) - return ; - fprintf (outf, "File %s, offset %d, type %s\n", - p->rGroup->recordType, p->recordOffset, p->fname); - log_event_start (NULL, NULL); -} - - static int recordExtract (ZebraHandle zh, SYSNO *sysno, const char *fname, struct recordGroup *rGroup, int deleteFlag, @@ -435,7 +425,6 @@ static int recordExtract (ZebraHandle zh, char *matchStr; SYSNO sysnotmp; Record rec; - struct recordLogInfo logInfo; off_t recordOffset = 0; if (fi->fd != -1) @@ -476,19 +465,19 @@ static int recordExtract (ZebraHandle zh, if (!rGroup->flagRw) printf ("File: %s " PRINTF_OFF_T "\n", fname, recordOffset); - - logInfo.fname = fname; - logInfo.recordOffset = recordOffset; - logInfo.rGroup = rGroup; - log_event_start (recordLogPreamble, &logInfo); + if (rGroup->flagRw) + { + char msg[512]; + sprintf (msg, "%s:" PRINTF_OFF_T , fname, recordOffset); + yaz_log_init_prefix2 (msg); + } r = (*recType->extract)(clientData, &extractCtrl); - log_event_start (NULL, NULL); - + yaz_log_init_prefix2 (0); if (r == RECCTRL_EXTRACT_EOF) return 0; - else if (r == RECCTRL_EXTRACT_ERROR) + else if (r == RECCTRL_EXTRACT_ERROR_GENERIC) { /* error occured during extraction ... */ if (rGroup->flagRw && @@ -499,6 +488,18 @@ static int recordExtract (ZebraHandle zh, } return 0; } + else if (r == RECCTRL_EXTRACT_ERROR_NO_SUCH_FILTER) + { + /* error occured during extraction ... */ + if (rGroup->flagRw && + zh->records_processed < rGroup->fileVerboseLimit) + { + logf (LOG_WARN, "no filter for %s %s " + PRINTF_OFF_T, rGroup->recordType, + fname, recordOffset); + } + return 0; + } if (zh->reg->keys.buf_used == 0) { /* the extraction process returned no information - the record @@ -955,19 +956,16 @@ int extract_rec_in_mem (ZebraHandle zh, const char *recordType, if (r == RECCTRL_EXTRACT_EOF) return 0; - else if (r == RECCTRL_EXTRACT_ERROR) + else if (r == RECCTRL_EXTRACT_ERROR_GENERIC) { /* error occured during extraction ... */ -#if 1 - yaz_log (LOG_WARN, "extract error"); -#else - if (rGroup->flagRw && - zh->records_processed < rGroup->fileVerboseLimit) - { - logf (LOG_WARN, "fail %s %s %ld", rGroup->recordType, - fname, (long) recordOffset); - } -#endif + yaz_log (LOG_WARN, "extract error: generic"); + return 0; + } + else if (r == RECCTRL_EXTRACT_ERROR_NO_SUCH_FILTER) + { + /* error occured during extraction ... */ + yaz_log (LOG_WARN, "extract error: no such filter"); return 0; } if (zh->reg->keys.buf_used == 0)