Using yaz_log_init_prefix2 instead log_event_start for indexing
[idzebra-moved-to-github.git] / index / extract.c
index a14b7f5..73fe1a1 100644 (file)
@@ -1,10 +1,26 @@
-/*
- * Copyright (C) 1994-2002, Index Data 
- * All rights reserved.
- * Sebastian Hammer, Adam Dickmeiss
- *
- * $Id: extract.c,v 1.119 2002-05-07 11:05:19 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
+
+This file is part of the Zebra server.
+
+Zebra is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with Zebra; see the file LICENSE.zebra.  If not, write to the
+Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
+*/
+
+
 #include <stdio.h>
 #include <assert.h>
 #ifdef WIN32
@@ -24,6 +40,9 @@
 #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))
 {
@@ -46,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)
 {
@@ -395,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,
@@ -419,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)
@@ -460,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 &&
@@ -483,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
@@ -939,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)