Zebra uses own XML reader (was part of YAZ before)
[idzebra-moved-to-github.git] / index / extract.c
index e82c488..3138c88 100644 (file)
@@ -1,10 +1,26 @@
-/*
- * Copyright (C) 1994-2002, Index Data 
- * All rights reserved.
- * Sebastian Hammer, Adam Dickmeiss
- *
- * $Id: extract.c,v 1.118 2002-05-03 13:49:04 adam Exp $
- */
+/* $Id: extract.c,v 1.121 2002-08-28 12:47:10 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
@@ -472,7 +488,7 @@ static int recordExtract (ZebraHandle zh,
 
        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 +499,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
@@ -564,8 +592,9 @@ static int recordExtract (ZebraHandle zh,
        if (recordAttr->runNumber ==
             zebraExplain_runNumberIncrement (zh->reg->zei, 0))
        {
-           logf (LOG_LOG, "skipped %s %s " PRINTF_OFF_T, rGroup->recordType,
-                 fname, recordOffset);
+            yaz_log (LOG_LOG, "run number = %d", recordAttr->runNumber);
+           yaz_log (LOG_LOG, "skipped %s %s " PRINTF_OFF_T,
+                     rGroup->recordType, fname, recordOffset);
            extract_flushSortKeys (zh, *sysno, -1, &zh->reg->sortKeys);
            rec_rm (&rec);
            logRecord (zh);
@@ -938,19 +967,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)