[tracker/wip/carlosg/update-perf: 13/61] libtracker-sparql: Minor code refactor
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/update-perf: 13/61] libtracker-sparql: Minor code refactor
- Date: Mon, 22 Aug 2022 22:07:42 +0000 (UTC)
commit c303090c8ac370b40252e14f4f4ec59c52fc9a2f
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu May 19 21:41:25 2022 +0200
libtracker-sparql: Minor code refactor
Since multi-valued properties have their own table, we can just pass the
property to the function that queues the operation deleting all values.
src/libtracker-sparql/core/tracker-data-update.c | 24 ++++++++++--------------
1 file changed, 10 insertions(+), 14 deletions(-)
---
diff --git a/src/libtracker-sparql/core/tracker-data-update.c
b/src/libtracker-sparql/core/tracker-data-update.c
index f2fd78a1e..03dbe14cb 100644
--- a/src/libtracker-sparql/core/tracker-data-update.c
+++ b/src/libtracker-sparql/core/tracker-data-update.c
@@ -628,17 +628,16 @@ cache_delete_row (TrackerData *data,
/* Use only for multi-valued properties */
static void
-cache_delete_all_values (TrackerData *data,
- const gchar *table_name,
- const gchar *field_name)
+cache_delete_all_values (TrackerData *data,
+ TrackerProperty *prop)
{
TrackerDataUpdateBufferTable *table;
TrackerDataUpdateBufferProperty property = { 0 };
- property.name = field_name;
+ property.name = tracker_property_get_name (prop);
property.delete_all_values = TRUE;
- table = cache_ensure_table (data, table_name, TRUE);
+ table = cache_ensure_table (data, tracker_property_get_table_name (prop), TRUE);
g_array_append_val (table->properties, property);
}
@@ -2322,9 +2321,8 @@ delete_all_helper (TrackerData *data,
if (subproperty == property) {
if (tracker_property_get_multiple_values (property)) {
- cache_delete_all_values (data,
- tracker_property_get_table_name (property),
- tracker_property_get_name (property));
+ cache_delete_all_values (data, property);
+
if (tracker_property_get_data_type (property) == TRACKER_PROPERTY_TYPE_RESOURCE) {
if (!tracker_data_resource_unref_all (data, property, error))
return FALSE;
@@ -2431,9 +2429,8 @@ delete_single_valued (TrackerData *data,
multiple_values = tracker_property_get_multiple_values (predicate);
if (super_is_single_valued && multiple_values) {
- cache_delete_all_values (data,
- tracker_property_get_table_name (predicate),
- tracker_property_get_name (predicate));
+ cache_delete_all_values (data, predicate);
+
if (tracker_property_get_data_type (predicate) == TRACKER_PROPERTY_TYPE_RESOURCE) {
if (!tracker_data_resource_unref_all (data, predicate, error))
return FALSE;
@@ -2642,9 +2639,8 @@ tracker_data_update_statement (TrackerData *data,
data->resource_buffer->fts_updated |=
tracker_property_get_fulltext_indexed (predicate);
- cache_delete_all_values (data,
- tracker_property_get_table_name (predicate),
- tracker_property_get_name (predicate));
+ cache_delete_all_values (data, predicate);
+
if (tracker_property_get_data_type (predicate) == TRACKER_PROPERTY_TYPE_RESOURCE) {
if (!tracker_data_resource_unref_all (data, predicate, error))
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]