diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-08-31 11:43:38 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-11-13 11:17:31 +0100 |
commit | 06e366c6ab929a8c42415966943f07394f051cf6 (patch) | |
tree | b2dc91123f6481bfacae1b71ac2158ee96a0d2e5 | |
parent | 2f1f5c1875b78c2e3e6ed8eac5e8dc0a67d94f6f (diff) | |
download | tracker-06e366c6ab929a8c42415966943f07394f051cf6.tar.gz |
libtracker-data: Add method to fetch unused URNs
-rw-r--r-- | src/libtracker-data/tracker-data-query.c | 33 | ||||
-rw-r--r-- | src/libtracker-data/tracker-data-query.h | 3 |
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); |