[tracker/wip/carlosg/graphs: 4/12] libtracker-data: Avoid clearing an already empty FTS row
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/graphs: 4/12] libtracker-data: Avoid clearing an already empty FTS row
- Date: Wed, 29 Apr 2020 20:33:21 +0000 (UTC)
commit be51f2f1405c6f56b7008cfad375f64b7e22aac3
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Apr 23 12:11:54 2020 +0200
libtracker-data: Avoid clearing an already empty FTS row
It is already known that FTS5 external content tables are extremely
picky about their index consistenty. It seems another situation to
avoid is clearing of FTS rows that are already empty, that seems
enough to have the FTS table deem the index inconsistent.
Found via tracker-miner tests along the DataObject/InformationElement
split.
src/libtracker-data/tracker-db-interface-sqlite.c | 7 +++++++
1 file changed, 7 insertions(+)
---
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c
b/src/libtracker-data/tracker-db-interface-sqlite.c
index 545f26690..b1d60566e 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -2262,8 +2262,15 @@ tracker_db_interface_sqlite_fts_delete_text (TrackerDBInterface *db_interface,
TrackerDBStatement *stmt;
GError *error = NULL;
gchar *query;
+ gboolean has_text = FALSE;
gint i;
+ for (i = 0; old_text[i] != NULL; i++)
+ has_text |= old_text[i] && *old_text[i];
+
+ if (!has_text)
+ return TRUE;
+
query = tracker_db_interface_sqlite_fts_create_query (db_interface,
database,
TRUE, properties);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]