From 5b3b9911bdf270613550aed49665a043315c84e9 Mon Sep 17 00:00:00 2001 From: simon987 Date: Thu, 13 Apr 2023 18:35:29 -0400 Subject: [PATCH] Bug fix for delete iterator --- src/database/database.c | 6 +++++- src/main.c | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/database/database.c b/src/database/database.c index bf867c7..7d2ead5 100644 --- a/src/database/database.c +++ b/src/database/database.c @@ -592,7 +592,11 @@ void database_add_work(database_t *db, job_t *job) { do { sqlite3_bind_text(db->insert_index_job_stmt, 1, job->bulk_line->doc_id, -1, SQLITE_STATIC); sqlite3_bind_int(db->insert_index_job_stmt, 2, job->bulk_line->type); - sqlite3_bind_text(db->insert_index_job_stmt, 3, job->bulk_line->line, -1, SQLITE_STATIC); + if (job->bulk_line->type != ES_BULK_LINE_DELETE) { + sqlite3_bind_text(db->insert_index_job_stmt, 3, job->bulk_line->line, -1, SQLITE_STATIC); + } else { + sqlite3_bind_null(db->insert_index_job_stmt, 3); + } ret = sqlite3_step(db->insert_index_job_stmt); diff --git a/src/main.c b/src/main.c index 7b02d10..3099b73 100644 --- a/src/main.c +++ b/src/main.c @@ -322,7 +322,6 @@ void sist2_index(index_args_t *args) { } free(iterator); - database_close(db, FALSE); if (!args->print) { database_iterator_t *del_iter = database_create_delete_list_iterator(db); @@ -330,8 +329,11 @@ void sist2_index(index_args_t *args) { delete_document(id); free(id); } + free(del_iter); } + database_close(db, FALSE); + tpool_wait(IndexCtx.pool); tpool_destroy(IndexCtx.pool);