forked from pool/tracker
50 lines
2.2 KiB
Diff
50 lines
2.2 KiB
Diff
|
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
|
||
|
|