summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2018-08-31 11:43:38 +0200
committerCarlos Garnacho <carlosg@gnome.org>2018-11-13 11:17:31 +0100
commit06e366c6ab929a8c42415966943f07394f051cf6 (patch)
treeb2dc91123f6481bfacae1b71ac2158ee96a0d2e5
parent2f1f5c1875b78c2e3e6ed8eac5e8dc0a67d94f6f (diff)
downloadtracker-06e366c6ab929a8c42415966943f07394f051cf6.tar.gz
libtracker-data: Add method to fetch unused URNs
-rw-r--r--src/libtracker-data/tracker-data-query.c33
-rw-r--r--src/libtracker-data/tracker-data-query.h3
2 files changed, 36 insertions, 0 deletions
diff --git a/src/libtracker-data/tracker-data-query.c b/src/libtracker-data/tracker-data-query.c
index bce3e93a8..b6f553fbb 100644
--- a/src/libtracker-data/tracker-data-query.c
+++ b/src/libtracker-data/tracker-data-query.c
@@ -130,6 +130,39 @@ tracker_data_query_resource_id (TrackerDataManager *manager,
return id;
}
+gchar *
+tracker_data_query_unused_uuid (TrackerDataManager *manager,
+ TrackerDBInterface *iface)
+{
+ TrackerDBCursor *cursor = NULL;
+ TrackerDBStatement *stmt;
+ GError *error = NULL;
+ gchar *uuid = NULL;
+
+ stmt = tracker_db_interface_create_statement (iface, TRACKER_DB_STATEMENT_CACHE_TYPE_SELECT, &error,
+ "SELECT SparqlUUID()");
+
+ if (stmt) {
+ cursor = tracker_db_statement_start_cursor (stmt, &error);
+ g_object_unref (stmt);
+ }
+
+ if (cursor) {
+ if (tracker_db_cursor_iter_next (cursor, NULL, &error)) {
+ uuid = g_strdup (tracker_db_cursor_get_string (cursor, 0, NULL));
+ }
+
+ g_object_unref (cursor);
+ }
+
+ if (G_UNLIKELY (error)) {
+ g_critical ("Could not query resource ID: %s\n", error->message);
+ g_error_free (error);
+ }
+
+ return uuid;
+}
+
TrackerDBCursor *
tracker_data_query_sparql_cursor (TrackerDataManager *manager,
diff --git a/src/libtracker-data/tracker-data-query.h b/src/libtracker-data/tracker-data-query.h
index 1add89f91..3b2df21fd 100644
--- a/src/libtracker-data/tracker-data-query.h
+++ b/src/libtracker-data/tracker-data-query.h
@@ -37,6 +37,9 @@ G_BEGIN_DECLS
gint tracker_data_query_resource_id (TrackerDataManager *manager,
TrackerDBInterface *iface,
const gchar *uri);
+gchar *tracker_data_query_unused_uuid (TrackerDataManager *manager,
+ TrackerDBInterface *iface);
+
TrackerDBCursor *tracker_data_query_sparql_cursor (TrackerDataManager *manager,
const gchar *query,
GError **error);