Fixed problem with SRU diagnostic 'First record position out of range'
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 24 Oct 2006 08:12:12 +0000 (08:12 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 24 Oct 2006 08:12:12 +0000 (08:12 +0000)
being issued for 0 hits.

src/seshigh.c

index e93ec50..236069a 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-2005, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: seshigh.c,v 1.101 2006-10-24 08:07:02 adam Exp $
+ * $Id: seshigh.c,v 1.102 2006-10-24 08:12:12 adam Exp $
  */
 /**
  * \file seshigh.c
@@ -906,7 +906,6 @@ static void srw_bend_search(association *assoc, request *req,
         
         if (srw_req->query_type == Z_SRW_query_type_cql)
         {
-            yaz_log(YLOG_LOG, "CQL string=%s", srw_req->query.cql);
             if (assoc->server && assoc->server->cql_transform)
             {
                 int srw_errcode = cql2pqf(assoc->encode, srw_req->query.cql,
@@ -1015,7 +1014,7 @@ static void srw_bend_search(association *assoc, request *req,
                         odr_intdup(assoc->encode, *rr.srw_setnameIdleTime );
                }
                 
-                if (start > rr.hits || start < 1)
+                if ((rr.hits > 0 && start > rr.hits) || start < 1)
                 {
                     yaz_add_srw_diagnostic(
                         assoc->encode, 
@@ -2322,7 +2321,7 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb)
                 assoc->init->implementation_name,
                 odr_prepend(assoc->encode, "GFS", resp->implementationName));
 
-    version = odr_strdup(assoc->encode, "$Revision: 1.101 $");
+    version = odr_strdup(assoc->encode, "$Revision: 1.102 $");
     if (strlen(version) > 10)   /* check for unexpanded CVS strings */
         version[strlen(version)-2] = '\0';
     resp->implementationVersion = odr_prepend(assoc->encode,