From 616579b5d773c50af31ee56f00105d96ce641ca2 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Aug 2021 10:30:13 +0100 Subject: gentoo resync : 14.08.2021 --- .../tracker/files/2.3.6-sqlite-3.34-compat.patch | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 app-misc/tracker/files/2.3.6-sqlite-3.34-compat.patch (limited to 'app-misc/tracker/files/2.3.6-sqlite-3.34-compat.patch') diff --git a/app-misc/tracker/files/2.3.6-sqlite-3.34-compat.patch b/app-misc/tracker/files/2.3.6-sqlite-3.34-compat.patch new file mode 100644 index 000000000000..cdbfe2f6136e --- /dev/null +++ b/app-misc/tracker/files/2.3.6-sqlite-3.34-compat.patch @@ -0,0 +1,45 @@ +From 29a6650f698bbd449e11fc0481269cd8f0593f27 Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +Date: Thu, 10 Dec 2020 03:55:08 +0100 +Subject: [PATCH] libtracker-data: Avoid deletion of empty rows in FTS table + +Starting with SQLite 3.34.0, this turns into a consistency error. Ensure +rows being deleted have actually some content before proceeding to deletion, +and ensure we don't process individual properties one by one in the course +of a whole rdfs:Resource deletion. + +Fixes: https://bugs.archlinux.org/task/68903 +--- + src/libtracker-data/tracker-data-update.c | 1 + + src/libtracker-data/tracker-db-interface-sqlite.c | 3 ++- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c +index e2f46685e..19cae25f9 100644 +--- a/src/libtracker-data/tracker-data-update.c ++++ b/src/libtracker-data/tracker-data-update.c +@@ -2244,6 +2244,7 @@ cache_delete_resource_type_full (TrackerData *data, + g_hash_table_size (data->resource_buffer->tables) == 0) { + #if HAVE_TRACKER_FTS + tracker_db_interface_sqlite_fts_delete_id (iface, data->resource_buffer->id); ++ data->resource_buffer->fts_updated = TRUE; + #endif + /* skip subclass query when deleting whole resource + to improve performance */ +diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c b/src/libtracker-data/tracker-db-interface-sqlite.c +index da88080ed..cdeb960e7 100644 +--- a/src/libtracker-data/tracker-db-interface-sqlite.c ++++ b/src/libtracker-data/tracker-db-interface-sqlite.c +@@ -1770,7 +1770,8 @@ tracker_db_interface_sqlite_fts_create_delete_all_query (TrackerDBInterface *db_ + g_string_append_printf (insert_str, + "INSERT INTO fts5 (fts5, rowid %s) " + "SELECT 'delete', rowid %s FROM fts_view " +- "WHERE rowid = ?", ++ "WHERE rowid = ? AND COALESCE(NULL %s) IS NOT NULL", ++ db_interface->fts_properties, + db_interface->fts_properties, + db_interface->fts_properties); + return g_string_free (insert_str, FALSE); +-- +2.32.0 + -- cgit v1.2.3