mirror of
https://github.com/simon987/sist2.git
synced 2025-12-12 15:08:53 +00:00
incremental scan: build delete index. only load from main & original.
This commit is contained in:
@@ -524,3 +524,20 @@ void incremental_copy(store_t *store, store_t *dst_store, const char *filepath,
|
||||
|
||||
read_index(filepath, "", INDEX_TYPE_NDJSON, incremental_copy_handle_doc);
|
||||
}
|
||||
|
||||
void incremental_delete(const char *del_filepath, GHashTable *orig_table, GHashTable *new_table) {
|
||||
GHashTableIter iter;
|
||||
gpointer key, UNUSED(value);
|
||||
char path_md5[MD5_STR_LENGTH + 1];
|
||||
path_md5[MD5_STR_LENGTH] = '\0';
|
||||
path_md5[MD5_STR_LENGTH - 1] = '\n';
|
||||
initialize_writer_ctx(del_filepath);
|
||||
g_hash_table_iter_init(&iter, orig_table);
|
||||
while(g_hash_table_iter_next(&iter, &key, &value)) {
|
||||
if (NULL == g_hash_table_lookup(new_table, key)) {
|
||||
memcpy(path_md5, key, MD5_STR_LENGTH - 1);
|
||||
zstd_write_string(path_md5, MD5_STR_LENGTH);
|
||||
}
|
||||
}
|
||||
writer_cleanup();
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@ typedef void(*index_func)(cJSON *, const char[MD5_STR_LENGTH]);
|
||||
void incremental_copy(store_t *store, store_t *dst_store, const char *filepath,
|
||||
const char *dst_filepath, GHashTable *copy_table);
|
||||
|
||||
void incremental_delete(const char *del_filepath, GHashTable *orig_table, GHashTable *new_table);
|
||||
|
||||
void write_document(document_t *doc);
|
||||
|
||||
void read_index(const char *path, const char[MD5_STR_LENGTH], const char *type, index_func);
|
||||
@@ -29,4 +31,4 @@ void write_index_descriptor(char *path, index_descriptor_t *desc);
|
||||
|
||||
index_descriptor_t read_index_descriptor(char *path);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user