[tracker/wip/carlosg/fixes-for-dataobject-split: 4/8] 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/fixes-for-dataobject-split: 4/8] libtracker-data: Avoid clearing an already empty FTS row
- Date: Thu, 23 Apr 2020 20:56:59 +0000 (UTC)
commit 8229255e794653b4179baa7a63d6b4404e545db6
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 fb5bcb46d..789cdd50f 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -2261,8 +2261,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]