[tracker: 3/12] tracker-data-manager: Simplify create_decomposed_metadata_tables()




commit b052f73cf49b912f9813bf94746bf721617b7059
Author: Daniele Nicolodi <daniele grinta net>
Date:   Mon May 3 21:08:31 2021 +0200

    tracker-data-manager: Simplify create_decomposed_metadata_tables()
    
    Reduce indentation

 src/libtracker-data/tracker-data-manager.c | 193 +++++++++++++++--------------
 1 file changed, 97 insertions(+), 96 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 1456ad776..108acd4b6 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -2853,129 +2853,130 @@ create_decomposed_metadata_tables (TrackerDataManager  *manager,
        domain_indexes = tracker_class_get_domain_indexes (service);
 
        for (i = 0; i < n_props; i++) {
+                const gchar *sql_type_for_single_value = NULL;
+               gboolean put_change;
+               const gchar *field_name;
                gboolean is_domain_index, datetime;
 
                property = properties[i];
                is_domain_index = is_a_domain_index (domain_indexes, property);
                datetime = tracker_property_get_data_type (property) == TRACKER_PROPERTY_TYPE_DATETIME;
 
-               if (tracker_property_get_domain (property) == service || is_domain_index) {
-                       const gchar *sql_type_for_single_value = NULL;
-                       gboolean put_change;
-                       const gchar *field_name;
+               if (tracker_property_get_domain (property) != service && !is_domain_index) {
+                        continue;
+                }
 
-                       create_decomposed_metadata_property_table (iface, property,
-                                                                  database,
-                                                                  service_name,
-                                                                  service,
-                                                                  &sql_type_for_single_value,
-                                                                  in_alter,
-                                                                  in_change,
-                                                                  &internal_error);
+               create_decomposed_metadata_property_table (iface, property,
+                                                          database,
+                                                          service_name,
+                                                          service,
+                                                          &sql_type_for_single_value,
+                                                          in_alter,
+                                                          in_change,
+                                                          &internal_error);
 
-                       if (internal_error) {
-                               g_propagate_error (error, internal_error);
-                               goto error_out;
-                       }
+               if (internal_error) {
+                       g_propagate_error (error, internal_error);
+                       goto error_out;
+               }
 
-                       field_name = tracker_property_get_name (property);
+               field_name = tracker_property_get_name (property);
 
-                       if (sql_type_for_single_value) {
-                               /* single value */
+               if (sql_type_for_single_value) {
+                       /* single value */
 
-                               if (in_update) {
-                                       TRACKER_NOTE (ONTOLOGY_CHANGES,
-                                                     g_message ("%sAltering database for class '%s' property 
'%s': single value (%s)",
-                                                                in_alter ? "" : "  ",
-                                                                service_name,
-                                                                field_name,
-                                                                in_alter ? "alter" : "create"));
-                               }
+                       if (in_update) {
+                               TRACKER_NOTE (ONTOLOGY_CHANGES,
+                                             g_message ("%sAltering database for class '%s' property '%s': 
single value (%s)",
+                                                        in_alter ? "" : "  ",
+                                                        service_name,
+                                                        field_name,
+                                                        in_alter ? "alter" : "create"));
+                       }
 
-                               if (!in_alter) {
-                                       put_change = TRUE;
-                                       class_properties = g_slist_prepend (class_properties, property);
+                       if (!in_alter) {
+                               put_change = TRUE;
+                               class_properties = g_slist_prepend (class_properties, property);
 
-                                       g_string_append_printf (create_sql, ", \"%s\" %s",
-                                                               field_name,
-                                                               sql_type_for_single_value);
+                               g_string_append_printf (create_sql, ", \"%s\" %s",
+                                                       field_name,
+                                                       sql_type_for_single_value);
 
-                                       if (!copy_schedule) {
-                                               copy_schedule = g_ptr_array_new_with_free_func (g_free);
-                                       }
+                               if (!copy_schedule) {
+                                       copy_schedule = g_ptr_array_new_with_free_func (g_free);
+                               }
 
-                                       if (is_domain_index && tracker_property_get_is_new_domain_index 
(property, service)) {
-                                               schedule_copy (copy_schedule, property, field_name, NULL);
-                                       }
+                               if (is_domain_index && tracker_property_get_is_new_domain_index (property, 
service)) {
+                                       schedule_copy (copy_schedule, property, field_name, NULL);
+                               }
 
-                                       if (g_ascii_strcasecmp (sql_type_for_single_value, "TEXT") == 0 ||
-                                           g_ascii_strcasecmp (sql_type_for_single_value, "BLOB") == 0) {
-                                               g_string_append (create_sql, " COLLATE " 
TRACKER_COLLATION_NAME);
-                                       }
+                               if (g_ascii_strcasecmp (sql_type_for_single_value, "TEXT") == 0 ||
+                                   g_ascii_strcasecmp (sql_type_for_single_value, "BLOB") == 0) {
+                                       g_string_append (create_sql, " COLLATE " TRACKER_COLLATION_NAME);
+                               }
 
-                                       if (tracker_property_get_is_inverse_functional_property (property)) {
-                                               g_string_append (create_sql, " UNIQUE");
-                                       }
-                               } else if ((!is_domain_index && tracker_property_get_is_new (property)) ||
-                                          (is_domain_index && tracker_property_get_is_new_domain_index 
(property, service))) {
-                                       GString *alter_sql = NULL;
-
-                                       put_change = FALSE;
-                                       class_properties = g_slist_prepend (class_properties, property);
-
-                                       alter_sql = g_string_new ("ALTER TABLE ");
-                                       g_string_append_printf (alter_sql, "\"%s\".\"%s\" ADD COLUMN \"%s\" 
%s",
-                                                               database,
-                                                               service_name,
-                                                               field_name,
-                                                               sql_type_for_single_value);
-
-                                       if (g_ascii_strcasecmp (sql_type_for_single_value, "TEXT") == 0 ||
-                                           g_ascii_strcasecmp (sql_type_for_single_value, "BLOB") == 0) {
-                                               g_string_append (alter_sql, " COLLATE " 
TRACKER_COLLATION_NAME);
-                                       }
+                               if (tracker_property_get_is_inverse_functional_property (property)) {
+                                       g_string_append (create_sql, " UNIQUE");
+                               }
+                       } else if ((!is_domain_index && tracker_property_get_is_new (property)) ||
+                                  (is_domain_index && tracker_property_get_is_new_domain_index (property, 
service))) {
+                               GString *alter_sql = NULL;
+
+                               put_change = FALSE;
+                               class_properties = g_slist_prepend (class_properties, property);
+
+                               alter_sql = g_string_new ("ALTER TABLE ");
+                               g_string_append_printf (alter_sql, "\"%s\".\"%s\" ADD COLUMN \"%s\" %s",
+                                                       database,
+                                                       service_name,
+                                                       field_name,
+                                                       sql_type_for_single_value);
+
+                               if (g_ascii_strcasecmp (sql_type_for_single_value, "TEXT") == 0 ||
+                                   g_ascii_strcasecmp (sql_type_for_single_value, "BLOB") == 0) {
+                                       g_string_append (alter_sql, " COLLATE " TRACKER_COLLATION_NAME);
+                               }
 
-                                       if (tracker_property_get_is_inverse_functional_property (property)) {
-                                               g_string_append (alter_sql, " UNIQUE");
-                                       }
+                               if (tracker_property_get_is_inverse_functional_property (property)) {
+                                       g_string_append (alter_sql, " UNIQUE");
+                               }
 
-                                       TRACKER_NOTE (ONTOLOGY_CHANGES, g_message ("Altering: '%s'", 
alter_sql->str));
-                                       tracker_db_interface_execute_query (iface, &internal_error, "%s", 
alter_sql->str);
+                               TRACKER_NOTE (ONTOLOGY_CHANGES, g_message ("Altering: '%s'", alter_sql->str));
+                               tracker_db_interface_execute_query (iface, &internal_error, "%s", 
alter_sql->str);
+                               if (internal_error) {
+                                       g_string_free (alter_sql, TRUE);
+                                       g_propagate_error (error, internal_error);
+                                       goto error_out;
+                               } else if (is_domain_index) {
+                                       copy_from_domain_to_domain_index (iface, database, property,
+                                                                         field_name, NULL,
+                                                                         service,
+                                                                         &internal_error);
                                        if (internal_error) {
                                                g_string_free (alter_sql, TRUE);
                                                g_propagate_error (error, internal_error);
                                                goto error_out;
-                                       } else if (is_domain_index) {
-                                               copy_from_domain_to_domain_index (iface, database, property,
-                                                                                 field_name, NULL,
-                                                                                 service,
-                                                                                 &internal_error);
-                                               if (internal_error) {
-                                                       g_string_free (alter_sql, TRUE);
-                                                       g_propagate_error (error, internal_error);
-                                                       goto error_out;
-                                               }
-
-                                               /* This is implicit for all domain-specific-indices */
-                                               set_index_for_single_value_property (iface, database, 
service_name,
-                                                                                    field_name, TRUE,
-                                                                                    datetime,
-                                                                                    &internal_error);
-                                               if (internal_error) {
-                                                       g_string_free (alter_sql, TRUE);
-                                                       g_propagate_error (error, internal_error);
-                                                       goto error_out;
-                                               }
                                        }
 
-                                       g_string_free (alter_sql, TRUE);
-                               } else {
-                                       put_change = TRUE;
+                                       /* This is implicit for all domain-specific-indices */
+                                       set_index_for_single_value_property (iface, database, service_name,
+                                                                            field_name, TRUE,
+                                                                            datetime,
+                                                                            &internal_error);
+                                       if (internal_error) {
+                                               g_string_free (alter_sql, TRUE);
+                                               g_propagate_error (error, internal_error);
+                                               goto error_out;
+                                       }
                                }
 
-                               if (in_change && put_change && in_col_sql && sel_col_sql) {
-                                       range_change_for (property, in_col_sql, sel_col_sql, field_name);
-                               }
+                               g_string_free (alter_sql, TRUE);
+                       } else {
+                               put_change = TRUE;
+                       }
+
+                       if (in_change && put_change && in_col_sql && sel_col_sql) {
+                               range_change_for (property, in_col_sql, sel_col_sql, field_name);
                        }
                }
        }


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