SHA256
1
0
forked from pool/tracker
tracker/0002-early-fts-initialization.patch

50 lines
2.2 KiB
Diff
Raw Normal View History

From 373535883c5b89fa1b3cd958274c36bdaf543db6 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Thu, 7 Dec 2023 10:16:16 +0100
Subject: [PATCH] libtracker-sparql: Move FTS initialization to an earlier
stage
With SQLite >= 3.44.x, the check_integrity pragma may involve existing
virtual tables and their xIntegrity vmethod. This includes FTS5 tables,
so we need to set up the FTS5 tokenizer at an earlier stage, so that
possible integrity checks happening on startup have everything set up.
Closes: https://gitlab.gnome.org/GNOME/tracker/-/issues/418
---
src/libtracker-sparql/core/tracker-data-manager.c | 2 --
src/libtracker-sparql/core/tracker-db-manager.c | 5 +++++
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/libtracker-sparql/core/tracker-data-manager.c b/src/libtracker-sparql/core/tracker-data-manager.c
index f0797d642d..dff6b66542 100644
--- a/src/libtracker-sparql/core/tracker-data-manager.c
+++ b/src/libtracker-sparql/core/tracker-data-manager.c
@@ -3863,8 +3863,6 @@ tracker_data_manager_init_fts (TrackerDataManager *manager,
gboolean create,
GError **error)
{
- if (!tracker_db_interface_sqlite_fts_init (iface, manager->flags, error))
- return FALSE;
if (!create)
return TRUE;
return tracker_db_interface_sqlite_fts_create_table (iface,
diff --git a/src/libtracker-sparql/core/tracker-db-manager.c b/src/libtracker-sparql/core/tracker-db-manager.c
index 6952af082b..8427ed71b7 100644
--- a/src/libtracker-sparql/core/tracker-db-manager.c
+++ b/src/libtracker-sparql/core/tracker-db-manager.c
@@ -783,6 +783,11 @@ tracker_db_manager_create_db_interface (TrackerDBManager *db_manager,
return NULL;
}
+ if (!tracker_db_interface_sqlite_fts_init (connection,
+ db_manager->flags,
+ error))
+ return FALSE;
+
tracker_db_interface_set_max_stmt_cache_size (connection,
TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT,
db_manager->s_cache_size);
--
GitLab