tracker r1950 - in branches/indexer-split: . src/libtracker-db src/trackerd
- From: pvanhoof svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1950 - in branches/indexer-split: . src/libtracker-db src/trackerd
- Date: Mon, 28 Jul 2008 11:37:58 +0000 (UTC)
Author: pvanhoof
Date: Mon Jul 28 11:37:58 2008
New Revision: 1950
URL: http://svn.gnome.org/viewvc/tracker?rev=1950&view=rev
Log:
2008-07-28 Philip Van Hoof <pvanhoof gnome org>
* src/trackerd/tracker-metadata.c:
* src/libtracker-db/tracker-db-dbus.h:
* src/libtracker-db/tracker-db-dbus.c:
Make tracker_metadata_get return the columns as a GStrv, not the rows.
This patch fixed tracker-search-tool's crash
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/src/libtracker-db/tracker-db-dbus.c
branches/indexer-split/src/libtracker-db/tracker-db-dbus.h
branches/indexer-split/src/trackerd/tracker-metadata.c
Modified: branches/indexer-split/src/libtracker-db/tracker-db-dbus.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-dbus.c (original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-dbus.c Mon Jul 28 11:37:58 2008
@@ -72,6 +72,59 @@
return strv;
}
+
+
+gchar **
+tracker_dbus_query_result_columns_to_strv (TrackerDBResultSet *result_set,
+ gint offset_column,
+ gint until_column,
+ gboolean rewind)
+{
+ gchar **strv = NULL;
+ gint i = 0;
+ gint columns;
+
+ if (result_set) {
+ columns = tracker_db_result_set_get_n_columns (result_set);
+ if (rewind) {
+ /* Make sure we rewind before iterating the result set */
+ tracker_db_result_set_rewind (result_set);
+ }
+ }
+
+ if (!result_set || offset_column > columns) {
+ strv = g_new (gchar*, 1);
+ strv[0] = NULL;
+ return strv;
+ } else if (offset_column == -1)
+ offset_column = 0;
+
+ if (until_column == -1)
+ until_column = columns;
+
+ strv = g_new (gchar*, until_column + 1);
+
+
+ for (i = offset_column ; i < until_column; i++) {
+ GValue value = {0, };
+ GValue transform = {0, };
+
+ g_value_init (&transform, G_TYPE_STRING);
+
+ _tracker_db_result_set_get_value (result_set, i, &value);
+ if (g_value_transform (&value, &transform)) {
+ strv[i] = g_value_dup_string (&transform);
+ }
+ g_value_unset (&value);
+ g_value_unset (&transform);
+ }
+
+ strv[i] = NULL;
+
+ return strv;
+}
+
+
GHashTable *
tracker_dbus_query_result_to_hash_table (TrackerDBResultSet *result_set)
{
Modified: branches/indexer-split/src/libtracker-db/tracker-db-dbus.h
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-dbus.h (original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-dbus.h Mon Jul 28 11:37:58 2008
@@ -28,9 +28,13 @@
#include "tracker-db-interface.h"
-gchar ** tracker_dbus_query_result_to_strv (TrackerDBResultSet *result_set,
- gint column,
- gint *count);
+gchar ** tracker_dbus_query_result_to_strv (TrackerDBResultSet *result_set,
+ gint column,
+ gint *count);
+gchar ** tracker_dbus_query_result_columns_to_strv (TrackerDBResultSet *result_set,
+ gint offset_column,
+ gint until_column,
+ gboolean rewind);
GHashTable *tracker_dbus_query_result_to_hash_table (TrackerDBResultSet *result_set);
GPtrArray * tracker_dbus_query_result_to_ptr_array (TrackerDBResultSet *result_set);
Modified: branches/indexer-split/src/trackerd/tracker-metadata.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-metadata.c (original)
+++ branches/indexer-split/src/trackerd/tracker-metadata.c Mon Jul 28 11:37:58 2008
@@ -192,7 +192,7 @@
g_debug (query);
result_set = tracker_db_interface_execute_query (iface, NULL, query);
- values = tracker_dbus_query_result_to_strv (result_set, 0, NULL);
+ values = tracker_dbus_query_result_columns_to_strv (result_set, -1, -1, TRUE);
g_free (query);
if (result_set) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]