[tracker/wip/carlosg/data-update-cleanups: 3/11] libtracker-data: Drop needless optimization



commit bfcdc16030dcddd39f4dadd0b9c5d20057921484
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Apr 25 15:59:09 2020 +0200

    libtracker-data: Drop needless optimization
    
    It's saves little time to do a "direct delete" when the queue is
    actually empty and ready for processing it directly too. Now that
    the fallback here are fixed, just queue the operation like
    everywhere else.

 src/libtracker-data/tracker-data-update.c | 67 +------------------------------
 1 file changed, 2 insertions(+), 65 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 4aa2468d4..5d8fe4952 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -1778,32 +1778,6 @@ delete_metadata_decomposed (TrackerData      *data,
        return change;
 }
 
-static void
-db_delete_row (TrackerDBInterface *iface,
-               const gchar        *database,
-               const gchar        *table_name,
-               gint                id)
-{
-       TrackerDBStatement *stmt;
-       GError *error = NULL;
-
-       stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &error,
-                                                     "DELETE FROM \"%s\".\"%s\" WHERE ID = ?",
-                                                     database, table_name);
-
-       if (stmt) {
-               tracker_db_statement_bind_int (stmt, 0, id);
-               tracker_db_statement_execute (stmt, &error);
-               g_object_unref (stmt);
-       }
-
-       if (error) {
-               g_warning ("%s", error->message);
-               g_error_free (error);
-               error = NULL;
-       }
-}
-
 static void
 cache_delete_resource_type_full (TrackerData  *data,
                                  TrackerClass *class,
@@ -1813,7 +1787,7 @@ cache_delete_resource_type_full (TrackerData  *data,
        TrackerDBStatement *stmt;
        TrackerDBCursor    *cursor = NULL;
        TrackerProperty   **properties, *prop;
-       gboolean            found, direct_delete;
+       gboolean            found;
        gint                i;
        guint               p, n_props;
        GError             *error = NULL;
@@ -1890,9 +1864,6 @@ cache_delete_resource_type_full (TrackerData  *data,
                }
        }
 
-       /* bypass buffer if possible */
-       direct_delete = g_hash_table_size (data->resource_buffer->tables) == 0;
-
        /* delete all property values */
 
        properties = tracker_ontologies_get_properties (ontologies, &n_props);
@@ -1914,14 +1885,6 @@ cache_delete_resource_type_full (TrackerData  *data,
                table_name = tracker_property_get_table_name (prop);
                field_name = tracker_property_get_name (prop);
 
-               if (direct_delete) {
-                       if (multiple_values) {
-                               db_delete_row (iface, database, table_name, data->resource_buffer->id);
-                       }
-                       /* single-valued property values are deleted right after the loop by deleting the row 
in the class table */
-                       continue;
-               }
-
                old_values = get_old_property_values (data, prop, NULL);
 
                for (y = old_values->len - 1; y >= 0 ; y--) {
@@ -1958,33 +1921,7 @@ cache_delete_resource_type_full (TrackerData  *data,
                }
        }
 
-       if (direct_delete) {
-               /* delete row from class table */
-               db_delete_row (iface, database, tracker_class_get_name (class), data->resource_buffer->id);
-
-               if (!single_type) {
-                       /* delete row from rdfs:Resource_rdf:type table */
-                       /* this is not necessary when deleting the whole resource
-                          as all property values are deleted implicitly */
-                       stmt = tracker_db_interface_create_statement (iface, 
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE, &error,
-                                                                     "DELETE FROM \"rdfs:Resource_rdf:type\" 
WHERE ID = ? AND \"rdf:type\" = ?");
-
-                       if (stmt) {
-                               tracker_db_statement_bind_int (stmt, 0, data->resource_buffer->id);
-                               tracker_db_statement_bind_int (stmt, 1, tracker_class_get_id (class));
-                               tracker_db_statement_execute (stmt, &error);
-                               g_object_unref (stmt);
-                       }
-
-                       if (error) {
-                               g_warning ("Could not delete cache resource: %s", error->message);
-                               g_error_free (error);
-                               error = NULL;
-                       }
-               }
-       } else {
-               cache_delete_row (data, class);
-       }
+       cache_delete_row (data, class);
 
        if (data->delete_callbacks) {
                guint n;


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