ldb: repack old format database if GUID indexing enabled
[metze/samba/wip.git] / lib / ldb / ldb_key_value / ldb_kv.h
index 1186e86ec9f3e140857ebedaa6b96ca85ae1ac9d..ce9a447186c21d747ad7c98a2c9a362e3c735811 100644 (file)
@@ -64,6 +64,7 @@ struct ldb_kv_private {
 
        unsigned long long sequence_number;
        uint32_t pack_format_version;
+       uint32_t target_pack_format_version;
 
        /* the low level tdb seqnum - used to avoid loading BASEINFO when
           possible */
@@ -141,6 +142,12 @@ struct ldb_kv_reindex_context {
        uint32_t count;
 };
 
+struct ldb_kv_repack_context {
+       int error;
+       uint32_t count;
+       bool normal_record_seen;
+};
+
 
 /* special record types */
 #define LDB_KV_INDEX      "@INDEX"
@@ -226,6 +233,7 @@ int ldb_kv_index_del_value(struct ldb_module *module,
                           struct ldb_message_element *el,
                           unsigned int v_idx);
 int ldb_kv_reindex(struct ldb_module *module);
+int ldb_kv_repack(struct ldb_module *module);
 int ldb_kv_index_transaction_start(
        struct ldb_module *module,
        size_t cache_size);