[tracker/wip/carlosg/sparql1.1: 11/56] libtracker-data: Split database setup and ontology import steps
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/sparql1.1: 11/56] libtracker-data: Split database setup and ontology import steps
- Date: Thu, 6 Jun 2019 11:17:05 +0000 (UTC)
commit cee93caab44b57cacf9e96e1a14660642188dba6
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Mar 8 17:08:53 2019 +0100
libtracker-data: Split database setup and ontology import steps
When importing an ontology, we first created the database tables as
defined by the ontology, and then inserted the resources as defined
in the ontology into the tables themselves.
Split in two steps, but still call one after the other in the relevant
places.
src/libtracker-data/tracker-data-manager.c | 48 ++++++++++++++++++++++--------
1 file changed, 35 insertions(+), 13 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 18b05640f..2f9e5cd3f 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -3525,20 +3525,16 @@ create_base_tables (TrackerDataManager *manager,
}
static void
-tracker_data_ontology_import_into_db (TrackerDataManager *manager,
- gboolean in_update,
- GError **error)
+tracker_data_ontology_setup_db (TrackerDataManager *manager,
+ TrackerDBInterface *iface,
+ gboolean in_update,
+ GError **error)
{
- TrackerDBInterface *iface;
TrackerClass **classes;
- TrackerProperty **properties;
- guint i, n_props, n_classes;
-
- iface = tracker_db_manager_get_writable_db_interface (manager->db_manager);
+ guint i, n_classes;
classes = tracker_ontologies_get_classes (manager->ontologies, &n_classes);
- properties = tracker_ontologies_get_properties (manager->ontologies, &n_props);
/* create tables */
for (i = 0; i < n_classes; i++) {
@@ -3554,6 +3550,20 @@ tracker_data_ontology_import_into_db (TrackerDataManager *manager,
return;
}
}
+}
+
+static void
+tracker_data_ontology_import_into_db (TrackerDataManager *manager,
+ TrackerDBInterface *iface,
+ gboolean in_update,
+ GError **error)
+{
+ TrackerClass **classes;
+ TrackerProperty **properties;
+ guint i, n_props, n_classes;
+
+ classes = tracker_ontologies_get_classes (manager->ontologies, &n_classes);
+ properties = tracker_ontologies_get_properties (manager->ontologies, &n_props);
/* insert classes into rdfs:Resource table */
for (i = 0; i < n_classes; i++) {
@@ -3588,6 +3598,7 @@ tracker_data_ontology_import_into_db (TrackerDataManager *manager,
}
}
}
+
}
static gint
@@ -4081,8 +4092,14 @@ tracker_data_manager_initable_init (GInitable *initable,
return FALSE;
}
- tracker_data_ontology_import_into_db (manager, FALSE,
- &internal_error);
+ tracker_data_ontology_setup_db (manager, iface, FALSE,
+ &internal_error);
+
+ if (!internal_error) {
+ tracker_data_ontology_import_into_db (manager, iface,
+ FALSE,
+ &internal_error);
+ }
if (internal_error) {
g_propagate_error (error, internal_error);
@@ -4437,8 +4454,13 @@ tracker_data_manager_initable_init (GInitable *initable,
tracker_db_interface_sqlite_fts_delete_table (iface);
#endif
- tracker_data_ontology_import_into_db (manager, TRUE,
- &ontology_error);
+ tracker_data_ontology_setup_db (manager, iface, TRUE,
+ &ontology_error);
+
+ if (!ontology_error) {
+ tracker_data_ontology_import_into_db (manager, iface, TRUE,
+ &ontology_error);
+ }
if (!ontology_error) {
#if HAVE_TRACKER_FTS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]