[tracker] Ported tracker_data_query_rdf_type to cursor API
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] Ported tracker_data_query_rdf_type to cursor API
- Date: Mon, 31 Aug 2009 09:53:33 +0000 (UTC)
commit 67dd540fe62da445602a7458d7193efcb39a9c63
Author: Philip Van Hoof <philip codeminded be>
Date: Mon Aug 31 11:49:11 2009 +0200
Ported tracker_data_query_rdf_type to cursor API
src/libtracker-data/tracker-data-query.c | 26 +++++++++++---------------
1 files changed, 11 insertions(+), 15 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-query.c b/src/libtracker-data/tracker-data-query.c
index 8c5f64c..15b2f74 100644
--- a/src/libtracker-data/tracker-data-query.c
+++ b/src/libtracker-data/tracker-data-query.c
@@ -42,7 +42,7 @@
GPtrArray*
tracker_data_query_rdf_type (guint32 id)
{
- TrackerDBResultSet *result_set;
+ TrackerDBCursor *cursor;
TrackerDBInterface *iface;
TrackerDBStatement *stmt;
GPtrArray *ret = NULL;
@@ -57,24 +57,20 @@ tracker_data_query_rdf_type (guint32 id)
"WHERE \"rdfs:Resource_rdf:type\".\"ID\" = ?");
tracker_db_statement_bind_int (stmt, 0, id);
- result_set = tracker_db_statement_execute (stmt, NULL);
+ cursor = tracker_db_statement_start_cursor (stmt, NULL);
g_object_unref (stmt);
- if (result_set) {
- guint rows;
-
- rows = tracker_db_result_set_get_n_rows (result_set);
- ret = g_ptr_array_sized_new (rows);
- do {
- gchar *uri;
+ if (cursor) {
- tracker_db_result_set_get (result_set, 0, &uri, -1);
+ /* Query is usually a rather small result, but let's try to
+ * avoid reallocs in gptrarray.c as much as possible (this
+ * function is called fairly often) */
- g_ptr_array_add (ret, uri);
-
- } while (tracker_db_result_set_iter_next (result_set));
-
- g_object_unref (result_set);
+ ret = g_ptr_array_sized_new (20);
+ while (tracker_db_cursor_iter_next (cursor)) {
+ g_ptr_array_add (ret, g_strdup (tracker_db_cursor_get_string (cursor, 0)));
+ }
+ g_object_unref (cursor);
}
return ret;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]