tracker r1400 - in branches/xesam-support: data src/trackerd
- From: pvanhoof svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1400 - in branches/xesam-support: data src/trackerd
- Date: Tue, 13 May 2008 11:48:56 +0100 (BST)
Author: pvanhoof
Date: Tue May 13 10:48:56 2008
New Revision: 1400
URL: http://svn.gnome.org/viewvc/tracker?rev=1400&view=rev
Log:
Some bugfixes
Modified:
branches/xesam-support/data/sqlite-stored-procs.sql
branches/xesam-support/src/trackerd/tracker-db-sqlite.c
branches/xesam-support/src/trackerd/tracker-db-sqlite.h
branches/xesam-support/src/trackerd/tracker-xesam-live-search.c
branches/xesam-support/src/trackerd/tracker-xesam-query.c
branches/xesam-support/src/trackerd/tracker-xesam-query.h
Modified: branches/xesam-support/data/sqlite-stored-procs.sql
==============================================================================
--- branches/xesam-support/data/sqlite-stored-procs.sql (original)
+++ branches/xesam-support/data/sqlite-stored-procs.sql Tue May 13 10:48:56 2008
@@ -29,7 +29,7 @@
GetEvents SELECT ID, ServiceID, EventType FROM Events WHERE BeingHandled = 1;
SetEventsBeingHandled UPDATE Events SET BeingHandled = 1;
-GetLiveSearchModifiedIDs SELECT E.ServiceID FROM Events as E, LiveSearches as X WHERE E.ServiceID = X.ServiceID AND X.SearchID = ? AND NOT E.EventType='Create';
+GetLiveSearchDeletedIDs SELECT E.ServiceID FROM Events as E, LiveSearches as X WHERE E.ServiceID = X.ServiceID AND X.SearchID = ? AND E.EventType IS 'Delete';
GetLiveSearchHitCount SELECT count(*) FROM LiveSearches WHERE SearchID = ?;
GetNewEventID SELECT OptionValue FROM Options WHERE OptionKey = 'EventSequence';
@@ -202,8 +202,7 @@
GetXesamServiceMappings SELECT TypeName FROM XesamServiceMapping WHERE XesamTypeName = ?;
GetXesamServiceLookups SELECT DISTINCT TypeName FROM XesamServiceLookup WHERE XesamTypeName = ?;
-
GetXesamMetaDataTypes SELECT MetaName, Parents FROM XesamMetaDataTypes;
GetXesamMetaDataChildren SELECT Child FROM XesamMetaDataChildren WHERE Parent = ?;
GetXesamMetaDataMappings SELECT MetaName FROM XesamMetaDataMapping WHERE XesamMetaName = ?;
-GetXesamMetaDataLookups SELECT DISTINCT MetaName FROM XesamMetaDataLookup WHERE XesamMetaName = ?;
\ No newline at end of file
+GetXesamMetaDataLookups SELECT DISTINCT MetaName FROM XesamMetaDataLookup WHERE XesamMetaName = ?;
Modified: branches/xesam-support/src/trackerd/tracker-db-sqlite.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-db-sqlite.c (original)
+++ branches/xesam-support/src/trackerd/tracker-db-sqlite.c Tue May 13 10:48:56 2008
@@ -3177,7 +3177,7 @@
TrackerDBResultSet*
-tracker_db_get_live_search_modified_ids (DBConnection *db_con, const gchar *search_id)
+tracker_db_get_live_search_deleted_ids (DBConnection *db_con, const gchar *search_id)
{
TrackerDBResultSet *result;
@@ -3185,9 +3185,9 @@
g_static_rec_mutex_lock (&events_table_lock);
/* Uses the Events table */
- tracker_debug ("GetLiveSearchModifiedIDs");
+ tracker_debug ("GetLiveSearchDeletedIDs");
- result = tracker_exec_proc (db_con->cache, "GetLiveSearchModifiedIDs", search_id, NULL);
+ result = tracker_exec_proc (db_con->cache, "GetLiveSearchDeletedIDs", search_id, NULL);
g_static_rec_mutex_unlock (&events_table_lock);
Modified: branches/xesam-support/src/trackerd/tracker-db-sqlite.h
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-db-sqlite.h (original)
+++ branches/xesam-support/src/trackerd/tracker-db-sqlite.h Tue May 13 10:48:56 2008
@@ -349,7 +349,7 @@
TrackerDBResultSet *tracker_db_get_events (DBConnection *db_con);
void tracker_db_delete_handled_events (DBConnection *db_con,
TrackerDBResultSet *events);
-TrackerDBResultSet *tracker_db_get_live_search_modified_ids (DBConnection *db_con,
+TrackerDBResultSet *tracker_db_get_live_search_deleted_ids (DBConnection *db_con,
const gchar *search_id);
TrackerDBResultSet *tracker_db_get_live_search_new_ids (DBConnection *db_con,
const gchar *search_id,
Modified: branches/xesam-support/src/trackerd/tracker-xesam-live-search.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-xesam-live-search.c (original)
+++ branches/xesam-support/src/trackerd/tracker-xesam-live-search.c Tue May 13 10:48:56 2008
@@ -74,6 +74,7 @@
{
TrackerXesamLiveSearchPriv *priv = self->priv;
+ g_free (priv->query);
priv->query = g_strdup (query);
}
@@ -127,8 +128,7 @@
priv->active = FALSE;
priv->closed = FALSE;
- priv->query = g_strdup ("1=1");
-
+ priv->query = NULL;
priv->sql = g_strdup ("");
}
@@ -229,65 +229,59 @@
g_object_get (proxy, "db-connection", &db_con, NULL);
- result_set = tracker_db_get_live_search_modified_ids (db_con,
+ result_set = tracker_db_get_live_search_deleted_ids (db_con,
tracker_xesam_live_search_get_id (self));
if (!result_set)
return;
+
+ /**
+ * Deleted items:
+ * SELECT E.ServiceID FROM Events as E, LiveSearches as X
+ * WHERE E.ServiceID = X.ServiceID
+ * AND X.SearchID = ?
+ * AND E.EventType IS 'Delete'
+ **/
+
while (ls_valid) {
GValue ls_value = { 0, };
- gboolean ev_valid = TRUE;
+ gint ls_i_value;
_tracker_db_result_set_get_value (result_set, 0, &ls_value);
+ ls_i_value = g_value_get_int (&ls_value);
- while (ev_valid) {
- GValue ev_value = { 0, };
- gint ev_i_value;
-
- _tracker_db_result_set_get_value (result_set, 1, &ev_value);
-
- ev_i_value = g_value_get_int (&ev_value);
-
- if (ev_i_value == g_value_get_int (&ls_value)) {
- GValue ev_type = { 0, };
- const gchar *str;
-
- _tracker_db_result_set_get_value (events, 2, &ev_type);
- str = g_value_get_string (&ev_type);
-
- if (!strcmp (str, "Update")) {
- if (m_modified == NULL)
- m_modified = g_array_new (FALSE, TRUE, sizeof (guint32));
- g_array_append_val (m_modified, ev_i_value);
- } else if (!strcmp (str, "Delete")) {
- if (*removed == NULL)
- m_removed = g_array_new (FALSE, TRUE, sizeof (guint32));
- g_array_append_val (m_removed, ev_i_value);
- }
-
- g_value_unset (&ev_type);
- }
-
- g_value_unset (&ev_value);
- ev_valid = tracker_db_result_set_iter_next (events);
- }
+ if (m_removed == NULL)
+ m_removed = g_array_new (FALSE, TRUE, sizeof (guint32));
+ g_array_append_val (m_removed, ls_i_value);
- tracker_db_result_set_rewind (events);
+ g_value_unset (&ls_value);
ls_valid = tracker_db_result_set_iter_next (result_set);
}
g_object_unref (result_set);
+
+
ls_valid = TRUE;
// For ottela to review (add columns and tables)
+ /**
+ * New and Modified items:
+ * SELECT E.ServiceID, E.EventType, COLUMNS
+ * FROM XesamLiveSearches as X, Events as E, TABLES
+ * X.ServiceID = E.ServiceID
+ * AND X.SearchID = ? "
+ * AND X.EventType IS 'Create' OR X.EventType IS 'Update'
+ * AND (QUERY)
+ **/
+
result_set = tracker_db_get_live_search_new_ids (db_con,
tracker_xesam_live_search_get_id (self),
- "", /* Columns */
- "", /* Tables */
+ NULL, /* Columns */
+ NULL, /* Tables */
tracker_xesam_live_search_get_query (self)); /* Query */
if (!result_set)
@@ -683,7 +677,7 @@
}
/**
- * tracker_xesam_live_search_get_query:
+ * tracker_xesam_live_search_parse_query:
* @self: a #TrackerXesamLiveSearch
*
* * API will change *
@@ -699,19 +693,23 @@
TrackerXesamLiveSearchPriv *priv = self->priv;
TrackerDBusXesam *proxy = TRACKER_DBUS_XESAM (tracker_dbus_get_object (TRACKER_TYPE_DBUS_XESAM));
DBConnection *db_con = NULL;
- GError *parse_error;
+ GError *parse_error = NULL;
g_object_get (proxy, "db-connection", &db_con, NULL);
+
if (priv->sql)
g_free (priv->sql);
- priv->sql = tracker_xesam_query_to_sql (db_con, priv->query, parse_error);
+
+ priv->sql = tracker_xesam_query_to_sql (db_con, priv->query, &parse_error);
if (parse_error) {
- // FIXME Send the actual parse error.
+ gchar *str = g_strdup_printf ("Parse error: %s",
+ parse_error->message);
g_set_error (error, TRACKER_XESAM_ERROR,
TRACKER_XESAM_ERROR_PARSING_FAILED,
- "Parsing failed");
- g_free (parse_error);
+ str);
+ g_free (str);
+ g_error_free (parse_error);
}
return priv->sql;
Modified: branches/xesam-support/src/trackerd/tracker-xesam-query.c
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-xesam-query.c (original)
+++ branches/xesam-support/src/trackerd/tracker-xesam-query.c Tue May 13 10:48:56 2008
@@ -1169,11 +1169,12 @@
char *
-tracker_xesam_query_to_sql (DBConnection *db_con, const char *query, GError *error)
+tracker_xesam_query_to_sql (DBConnection *db_con, const char *query, GError **error)
{
static gboolean inited = FALSE;
ParserData data;
char *result;
+ char *table_name;
g_return_val_if_fail (query != NULL, NULL);
@@ -1186,8 +1187,6 @@
data.db_con = db_con;
data.statement_count = 0;
- char *table_name;
-
table_name = "Services";
data.sql_from = g_string_new ("");
@@ -1212,7 +1211,7 @@
result = NULL;
- if (!g_markup_parse_context_parse (data.context, query, -1, &error)) {
+ if (!g_markup_parse_context_parse (data.context, query, -1, error)) {
g_string_free (data.sql_from, TRUE);
g_string_free (data.sql_where, TRUE);
Modified: branches/xesam-support/src/trackerd/tracker-xesam-query.h
==============================================================================
--- branches/xesam-support/src/trackerd/tracker-xesam-query.h (original)
+++ branches/xesam-support/src/trackerd/tracker-xesam-query.h Tue May 13 10:48:56 2008
@@ -27,6 +27,6 @@
#include "tracker-db.h"
-char * tracker_xesam_query_to_sql (DBConnection *db_con, const char *query, GError *error);
+char * tracker_xesam_query_to_sql (DBConnection *db_con, const char *query, GError **error);
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]