diff options
-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); |