Disable X-Path indexing for explain records (in the case where
[idzebra-moved-to-github.git] / index / zebraapi.c
index c40bce8..38bc751 100644 (file)
@@ -1,5 +1,5 @@
-/* $Id: zebraapi.c,v 1.217 2006-05-10 08:13:23 adam Exp $
-   Copyright (C) 1995-2005
+/* $Id: zebraapi.c,v 1.222 2006-06-13 12:02:12 adam Exp $
+   Copyright (C) 1995-2006
    Index Data ApS
 
 This file is part of the Zebra server.
@@ -368,12 +368,7 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
 
     reg->keys = zebra_rec_keys_open();
 
-#if NATTR
     reg->sortKeys = zebra_rec_keys_open();
-#else
-    reg->sortKeys.buf = 0;
-    reg->sortKeys.buf_max = 0;
-#endif
 
     reg->records = 0;
     reg->dict = 0;
@@ -388,7 +383,6 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
     
     /* installing rank classes */
     zebraRankInstall (reg, rank_1_class);
-    zebraRankInstall (reg, rank_zv_class);
     zebraRankInstall (reg, rank_similarity_class);
     zebraRankInstall (reg, rank_static_class);
 
@@ -484,7 +478,7 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name,
     {
        reg->zei = zebraExplain_open(reg->records, reg->dh,
                                     res, rw, reg,
-                                    explain_extract);
+                                    zebra_extract_explain);
        if (!reg->zei)
        {
            yaz_log (YLOG_WARN, "Cannot obtain EXPLAIN information");
@@ -551,11 +545,7 @@ static void zebra_register_close(ZebraService zs, struct zebra_register *reg)
     data1_destroy (reg->dh);
 
     zebra_rec_keys_close(reg->keys);
-#if NATTR
     zebra_rec_keys_close(reg->sortKeys);
-#else
-    xfree(reg->sortKeys.buf);
-#endif
 
     xfree(reg->key_buf);
     xfree(reg->name);
@@ -585,7 +575,7 @@ ZEBRA_RES zebra_stop(ZebraService zs)
     return ZEBRA_OK;
 }
 
-ZEBRA_RES zebra_close (ZebraHandle zh)
+ZEBRA_RES zebra_close(ZebraHandle zh)
 {
     ZebraService zs;
     struct zebra_session **sp;
@@ -1408,15 +1398,15 @@ ZEBRA_RES zebra_admin_exchange_record(ZebraHandle zh,
        }
        action = 1;  /* make it an insert (if it's an update).. */
     }
-    res = buffer_extract_record (zh, rec_buf, rec_len,
-                                action == 3 ? 1 : 0 /* delete flag */,
-                                0, /* test mode */
-                                0, /* recordType */
-                                &sysno, 
-                                0, /* match */
-                                0, /* fname */
-                                0, /* force update */
-                                1  /* allow update */
+    res = zebra_buffer_extract_record(zh, rec_buf, rec_len,
+                                      action == 3 ? 1 : 0 /* delete flag */,
+                                      0, /* test mode */
+                                      0, /* recordType */
+                                      &sysno, 
+                                      0, /* match */
+                                      0, /* fname */
+                                      0, /* force update */
+                                      1  /* allow update */
        );
     if (res == ZEBRA_FAIL)
     {
@@ -1910,10 +1900,10 @@ ZEBRA_RES zebra_end_transaction (ZebraHandle zh, ZebraTransactionStatus *status)
                  zh->records_processed, zh->records_inserted,
                  zh->records_updated, zh->records_deleted);
         
-        status->processed = (int) zh->records_processed;
-        status->inserted = (int) zh->records_inserted;
-        status->updated = (int) zh->records_updated;
-        status->deleted = (int) zh->records_deleted;
+        status->processed = zh->records_processed;
+        status->inserted = zh->records_inserted;
+        status->updated = zh->records_updated;
+        status->deleted = zh->records_deleted;
         
         zebra_get_state (zh, &val, &seqno);
         if (val != 'd')
@@ -1943,31 +1933,33 @@ ZEBRA_RES zebra_end_transaction (ZebraHandle zh, ZebraTransactionStatus *status)
     return ZEBRA_OK;
 }
 
-int zebra_repository_update (ZebraHandle zh, const char *path)
+ZEBRA_RES zebra_repository_update(ZebraHandle zh, const char *path)
 {
     ASSERTZH;
     assert(path);
     yaz_log (log_level, "updating %s", path);
-    repositoryUpdate (zh, path);
-    return 0;
+
+    if (zh->m_record_id && !strcmp (zh->m_record_id, "file"))
+        return zebra_update_file_match(zh, path);
+    else
+        return zebra_update_from_path(zh, path);
 }
 
-int zebra_repository_delete (ZebraHandle zh, const char *path)
+ZEBRA_RES zebra_repository_delete(ZebraHandle zh, const char *path)
 {
     ASSERTZH;
     assert(path);
     yaz_log (log_level, "deleting %s", path);
-    repositoryDelete (zh, path);
-    return 0;
+    return zebra_delete_from_path(zh, path);
 }
 
-int zebra_repository_show (ZebraHandle zh, const char *path)
+ZEBRA_RES zebra_repository_show(ZebraHandle zh, const char *path)
 {
     ASSERTZH;
     assert(path);
     yaz_log(log_level, "zebra_repository_show");
     repositoryShow (zh, path);
-    return 0;
+    return ZEBRA_OK;
 }
 
 static ZEBRA_RES zebra_commit_ex(ZebraHandle zh, int clean_only)
@@ -2205,38 +2197,17 @@ void zebra_set_shadow_enable (ZebraHandle zh, int value)
     zh->shadow_enable = value;
 }
 
-/* Used by Perl API.. Added the record buffer dup to zebra_records_retrieve
-   so that it's identicical to the original api_records_retrieve */
-void api_records_retrieve (ZebraHandle zh, ODR stream,
-                          const char *setname, Z_RecordComposition *comp,
-                          oid_value input_format, int num_recs,
-                          ZebraRetrievalRecord *recs)
-{
-    zebra_records_retrieve(zh, stream, setname, comp, input_format,
-                          num_recs, recs);
-}
-
-/* ---------------------------------------------------------------------------
-  Record insert(=update), delete 
-
-  If sysno is provided, then it's used to identify the record.
-  If not, and match_criteria is provided, then sysno is guessed
-  If not, and a record is provided, then sysno is got from there
-NOTE: Now returns 0 at success and updates sysno, which is an int*
-  20-jun-2003 Heikki
-*/
-
-int zebra_add_record(ZebraHandle zh,
-                    const char *buf, int buf_size)
+ZEBRA_RES zebra_add_record(ZebraHandle zh,
+                           const char *buf, int buf_size)
 {
     return zebra_update_record(zh, 0, 0 /* sysno */, 0, 0, buf, buf_size, 0);
 }
 
-ZEBRA_RES zebra_insert_record (ZebraHandle zh, 
-                              const char *recordType,
-                              SYSNO *sysno, const char *match,
-                              const char *fname,
-                              const char *buf, int buf_size, int force_update)
+ZEBRA_RES zebra_insert_record(ZebraHandle zh, 
+                             const char *recordType,
+                             SYSNO *sysno, const char *match,
+                             const char *fname,
+                             const char *buf, int buf_size, int force_update)
 {
     ZEBRA_RES res;
     ASSERTZH;
@@ -2249,14 +2220,14 @@ ZEBRA_RES zebra_insert_record (ZebraHandle zh,
 
     if (zebra_begin_trans(zh, 1) == ZEBRA_FAIL)
        return ZEBRA_FAIL;
-    res = buffer_extract_record (zh, buf, buf_size, 
-                                0, /* delete_flag  */
-                                0, /* test_mode */
-                                recordType,
-                                sysno,   
-                                match, fname,
-                                0, 
-                                0); /* allow_update */
+    res = zebra_buffer_extract_record(zh, buf, buf_size, 
+                                      0, /* delete_flag  */
+                                      0, /* test_mode */
+                                      recordType,
+                                      sysno,   
+                                      match, fname,
+                                      0, 
+                                      0); /* allow_update */
     if (zebra_end_trans(zh) != ZEBRA_OK)
     {
        yaz_log(YLOG_WARN, "zebra_end_trans failed");
@@ -2286,14 +2257,14 @@ ZEBRA_RES zebra_update_record (ZebraHandle zh,
 
     if (zebra_begin_trans(zh, 1) == ZEBRA_FAIL)
        return ZEBRA_FAIL;
-    res = buffer_extract_record (zh, buf, buf_size, 
-                                0, /* delete_flag */
-                                0, /* test_mode */
-                                recordType,
-                                sysno,   
-                                match, fname,
-                                force_update, 
-                                1); /* allow_update */
+    res = zebra_buffer_extract_record(zh, buf, buf_size, 
+                                      0, /* delete_flag */
+                                      0, /* test_mode */
+                                      recordType,
+                                      sysno,   
+                                      match, fname,
+                                      force_update, 
+                                      1); /* allow_update */
     if (zebra_end_trans(zh) != ZEBRA_OK)
     {
        yaz_log(YLOG_WARN, "zebra_end_trans failed");
@@ -2322,14 +2293,14 @@ ZEBRA_RES zebra_delete_record (ZebraHandle zh,
 
     if (zebra_begin_trans(zh, 1) == ZEBRA_FAIL)
        return ZEBRA_FAIL;
-    res = buffer_extract_record (zh, buf, buf_size,
-                                1, /* delete_flag */
-                                0, /* test_mode */
-                                recordType,
-                                sysno,
-                                match,fname,
-                                force_update,
-                                1); /* allow_update */
+    res = zebra_buffer_extract_record(zh, buf, buf_size,
+                                      1, /* delete_flag */
+                                      0, /* test_mode */
+                                      recordType,
+                                      sysno,
+                                      match,fname,
+                                      force_update,
+                                      1); /* allow_update */
     if (zebra_end_trans(zh) != ZEBRA_OK)
     {
        yaz_log(YLOG_WARN, "zebra_end_trans failed");