Avoid truncating hit counts because Odr_int is 64-bit
[idzebra-moved-to-github.git] / index / zebrasrv.c
index 8de6803..8707531 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the Zebra server.
-   Copyright (C) 1994-2010 Index Data
+   Copyright (C) 1994-2011 Index Data
 
 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
@@ -224,7 +224,7 @@ static void search_terms(ZebraHandle zh, bend_search_rr *r)
         se->subqueryId = term_ref_id ? 
            odr_strdup(r->stream, term_ref_id) : 0;
            
-        se->fullQuery = odr_intdup(r->stream, 0);
+        se->fullQuery = odr_booldup(r->stream, 0);
         se->subqueryExpression = 
             odr_malloc(r->stream, sizeof(Z_QueryExpression));
         se->subqueryExpression->which = 
@@ -253,9 +253,7 @@ static void search_terms(ZebraHandle zh, bend_search_rr *r)
         se->subqueryExpression->u.term->termComment = 0;
         se->subqueryInterpretation = 0;
         se->subqueryRecommendation = 0;
-       if (count > 2147483646)
-           count = 2147483647;
-        se->subqueryCount = odr_intdup(r->stream, CAST_ZINT_TO_INT(count));
+        se->subqueryCount = odr_intdup(r->stream, count);
         se->subqueryWeight = 0;
         se->resultsByDB = 0;
     }
@@ -296,9 +294,7 @@ int bend_search(void *handle, bend_search_rr *r)
            zebra_result(zh, &r->errcode, &r->errstring);
        else
        {
-           if (zhits > 2147483646)
-               zhits = 2147483647;
-            r->hits = CAST_ZINT_TO_INT(zhits);
+            r->hits = zhits;
             search_terms(zh, r);
        }
         break;
@@ -382,8 +378,7 @@ static int bend_scan(void *handle, bend_scan_rr *r)
        {
            r->entries[i].term = entries[i].term;
            r->entries[i].display_term = entries[i].display_term;
-           r->entries[i].occurrences =
-                CAST_ZINT_TO_INT(entries[i].occurrences);
+            r->entries[i].occurrences = entries[i].occurrences;
        }
     }
     else
@@ -516,10 +511,10 @@ int bend_esrequest(void *handle, bend_esrequest_rr *rr)
 {
     ZebraHandle zh = (ZebraHandle) handle;
     
-    yaz_log(YLOG_LOG, "function: %d", *rr->esr->function);
+    yaz_log(YLOG_LOG, "function: " ODR_INT_PRINTF, *rr->esr->function);
     if (rr->esr->packageName)
        yaz_log(YLOG_LOG, "packagename: %s", rr->esr->packageName);
-    yaz_log(YLOG_LOG, "Waitaction: %d", *rr->esr->waitAction);
+    yaz_log(YLOG_LOG, "Waitaction: " ODR_INT_PRINTF, *rr->esr->waitAction);
 
     if (!rr->esr->taskSpecificParameters)
     {
@@ -566,7 +561,8 @@ int bend_esrequest(void *handle, bend_esrequest_rr *rr)
                    yaz_log(YLOG_LOG, "start");
                    break;
                default:
-                   yaz_log(YLOG_LOG, " unknown (%d)", *toKeep->action);
+                   yaz_log(YLOG_LOG, " unknown (" ODR_INT_PRINTF ")",
+                            *toKeep->action);
                }
            }
            if (toKeep->databaseName)