Added function zebra_create_rset_isam .
[idzebra-moved-to-github.git] / index / rpnsearch.c
index 7858cfd..1a82f99 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: rpnsearch.c,v 1.23 2007-11-15 08:53:25 adam Exp $
+/* $Id: rpnsearch.c,v 1.25 2007-12-03 13:04:04 adam Exp $
    Copyright (C) 1995-2007
    Index Data ApS
 
@@ -1345,13 +1345,6 @@ static ZEBRA_RES rpn_search_APT_position(ZebraHandle zh,
         return ZEBRA_FAIL;
     }
 
-    if (!zh->reg->isamb && !zh->reg->isamc)
-    {
-        zebra_setError_zint(zh, YAZ_BIB1_UNSUPP_POSITION_ATTRIBUTE,
-                            position_value);
-        return ZEBRA_FAIL;
-    }
-
     if (zebra_apt_get_ord(zh, zapt, index_type, 0,
                           attributeSet, &ord) != ZEBRA_OK)
     {
@@ -1365,13 +1358,9 @@ static ZEBRA_RES rpn_search_APT_position(ZebraHandle zh,
     {
         assert(*val == sizeof(ISAM_P));
         memcpy(&isam_p, val+1, sizeof(isam_p));
-        
-        if (zh->reg->isamb)
-            *rset = rsisamb_create(rset_nmem, kc, kc->scope,
-                                   zh->reg->isamb, isam_p, 0);
-        else if (zh->reg->isamc)
-            *rset = rsisamc_create(rset_nmem, kc, kc->scope,
-                                   zh->reg->isamc, isam_p, 0);
+
+        *rset = zebra_create_rset_isam(zh, rset_nmem, kc, kc->scope, 
+                                       isam_p, 0);
     }
     return ZEBRA_OK;
 }
@@ -2143,7 +2132,7 @@ static ZEBRA_RES rpn_search_database(ZebraHandle zh,
 static ZEBRA_RES rpn_search_APT(ZebraHandle zh, Z_AttributesPlusTerm *zapt,
                                const Odr_oid *attributeSet, NMEM stream,
                                Z_SortKeySpecList *sort_sequence,
-                               int num_bases, char **basenames, 
+                               int num_bases, const char **basenames, 
                                NMEM rset_nmem,
                                RSET *rset,
                                struct rset_key_control *kc)
@@ -2313,7 +2302,7 @@ static ZEBRA_RES rpn_search_structure(ZebraHandle zh, Z_RPNStructure *zs,
                                      const Odr_oid *attributeSet, 
                                      NMEM stream, NMEM rset_nmem,
                                      Z_SortKeySpecList *sort_sequence,
-                                     int num_bases, char **basenames,
+                                     int num_bases, const char **basenames,
                                      RSET **result_sets, int *num_result_sets,
                                      Z_Operator *parent_op,
                                      struct rset_key_control *kc);
@@ -2353,7 +2342,7 @@ ZEBRA_RES rpn_search_top(ZebraHandle zh, Z_RPNStructure *zs,
                         const Odr_oid *attributeSet, 
                         NMEM stream, NMEM rset_nmem,
                         Z_SortKeySpecList *sort_sequence,
-                        int num_bases, char **basenames,
+                        int num_bases, const char **basenames,
                         RSET *result_set)
 {
     RSET *result_sets = 0;
@@ -2390,7 +2379,7 @@ ZEBRA_RES rpn_search_structure(ZebraHandle zh, Z_RPNStructure *zs,
                               const Odr_oid *attributeSet, 
                               NMEM stream, NMEM rset_nmem,
                               Z_SortKeySpecList *sort_sequence,
-                              int num_bases, char **basenames,
+                              int num_bases, const char **basenames,
                               RSET **result_sets, int *num_result_sets,
                               Z_Operator *parent_op,
                               struct rset_key_control *kc)