[tracker/wip/carlosg/forgotten-single-valued-properties: 3/3] libtracker-data: Do not delete full FTS row




commit 8e6ca66b069a94542cb6f20b226173136cbad17f
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue May 25 14:15:43 2021 +0200

    libtracker-data: Do not delete full FTS row
    
    This might be nice for an optimization, we however go over all related
    classes and properties (incl. FTS) down the path, so it ends up just
    being repeated work.

 src/libtracker-data/tracker-data-update.c         |  2 -
 src/libtracker-data/tracker-db-interface-sqlite.c | 57 -----------------------
 src/libtracker-data/tracker-db-interface-sqlite.h |  3 --
 3 files changed, 62 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index e7fb39676..bb7373808 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -2094,8 +2094,6 @@ cache_delete_resource_type_full (TrackerData   *data,
        if (!single_type) {
                if (strcmp (tracker_class_get_uri (class), TRACKER_PREFIX_RDFS "Resource") == 0 &&
                    g_hash_table_size (data->resource_buffer->tables) == 0) {
-                       tracker_db_interface_sqlite_fts_delete_id (iface, database, 
data->resource_buffer->id);
-                       data->resource_buffer->fts_updated = TRUE;
 
                        /* 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 fabb1d4aa..c6a50add3 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -2361,25 +2361,6 @@ tracker_db_interface_sqlite_fts_create_query (TrackerDBInterface  *db_interface,
        return g_string_free (insert_str, FALSE);
 }
 
-static gchar *
-tracker_db_interface_sqlite_fts_create_delete_all_query (TrackerDBInterface *db_interface,
-                                                         const gchar        *database)
-{
-       GString *insert_str;
-
-       insert_str = g_string_new (NULL);
-       g_string_append_printf (insert_str,
-                               "INSERT INTO \"%s\".fts5 (fts5, rowid %s) "
-                               "SELECT 'delete', rowid %s FROM \"%s\".fts_view "
-                               "WHERE rowid = ? AND COALESCE(NULL %s) IS NOT NULL",
-                               database,
-                               db_interface->fts_properties,
-                               db_interface->fts_properties,
-                               database,
-                               db_interface->fts_properties);
-       return g_string_free (insert_str, FALSE);
-}
-
 gboolean
 tracker_db_interface_sqlite_fts_update_text (TrackerDBInterface  *db_interface,
                                              const gchar         *database,
@@ -2478,44 +2459,6 @@ tracker_db_interface_sqlite_fts_delete_text (TrackerDBInterface  *db_interface,
        return TRUE;
 }
 
-gboolean
-tracker_db_interface_sqlite_fts_delete_id (TrackerDBInterface *db_interface,
-                                           const gchar        *database,
-                                           int                 id)
-{
-       TrackerDBStatement *stmt;
-       GError *error = NULL;
-       gchar *query;
-
-       query = tracker_db_interface_sqlite_fts_create_delete_all_query (db_interface, database);
-       stmt = tracker_db_interface_create_statement (db_interface,
-                                                     TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
-                                                     &error,
-                                                     query);
-       g_free (query);
-
-       if (!stmt || error) {
-               if (error) {
-                       g_warning ("Could not create FTS delete statement: %s",
-                                  error->message);
-                       g_error_free (error);
-               }
-               return FALSE;
-       }
-
-       tracker_db_statement_bind_int (stmt, 0, id);
-       tracker_db_statement_execute (stmt, &error);
-       g_object_unref (stmt);
-
-       if (error) {
-               g_warning ("Could not delete FTS content: %s", error->message);
-               g_error_free (error);
-               return FALSE;
-       }
-
-       return TRUE;
-}
-
 gboolean
 tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface  *interface,
                                                 const gchar         *database,
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.h 
b/src/libtracker-data/tracker-db-interface-sqlite.h
index 1499a3aca..6659fcd10 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.h
+++ b/src/libtracker-data/tracker-db-interface-sqlite.h
@@ -82,9 +82,6 @@ gboolean            tracker_db_interface_sqlite_fts_delete_text        (TrackerD
                                                                         int                       rowid,
                                                                         const gchar             **properties,
                                                                         const gchar             **old_text);
-gboolean            tracker_db_interface_sqlite_fts_delete_id          (TrackerDBInterface       *interface,
-                                                                        const gchar              *database,
-                                                                        int                       rowid);
 gboolean            tracker_db_interface_sqlite_fts_rebuild_tokens     (TrackerDBInterface       *interface,
                                                                         const gchar              *database,
                                                                         GError                  **error);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]