tracker r2201 - in branches/indexer-split: . src/libtracker-common src/tracker-indexer src/trackerd
- From: mottela svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r2201 - in branches/indexer-split: . src/libtracker-common src/tracker-indexer src/trackerd
- Date: Mon, 8 Sep 2008 16:18:41 +0000 (UTC)
Author: mottela
Date: Mon Sep 8 16:18:41 2008
New Revision: 2201
URL: http://svn.gnome.org/viewvc/tracker?rev=2201&view=rev
Log:
Fixed problems with date handling in metadata fields
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/src/libtracker-common/tracker-type-utils.c
branches/indexer-split/src/libtracker-common/tracker-type-utils.h
branches/indexer-split/src/tracker-indexer/tracker-indexer-db.c
branches/indexer-split/src/trackerd/tracker-db.c
Modified: branches/indexer-split/src/libtracker-common/tracker-type-utils.c
==============================================================================
--- branches/indexer-split/src/libtracker-common/tracker-type-utils.c (original)
+++ branches/indexer-split/src/libtracker-common/tracker-type-utils.c Mon Sep 8 16:18:41 2008
@@ -42,20 +42,21 @@
is_int (const gchar *str)
{
gboolean valid;
- gint i;
+ gint i, len;
if (!str || str[0] == '\0') {
return FALSE;
}
- valid = TRUE;
- i = 0;
+ len = strlen (str);
- while (valid) {
- valid = g_ascii_isdigit (str[i++]);
+ for (i = 0; i < len; i++) {
+ if (!g_ascii_isdigit(str[i])) {
+ return FALSE;
+ }
}
- return valid;
+ return TRUE ;
}
static gint
@@ -299,6 +300,27 @@
return g_strdup (timestamp);
}
+gchar *
+tracker_date_to_time_string (const gchar *time_string)
+{
+ gchar *dvalue;
+
+ dvalue = tracker_date_format (time_string);
+
+ if (dvalue) {
+ time_t time;
+
+ time = tracker_string_to_date (dvalue);
+ g_free (dvalue);
+
+ if (time != -1) {
+ return tracker_gint_to_string (time);
+ }
+ }
+
+ return NULL;
+}
+
static gboolean
is_valid_8601_datetime (const gchar *timestamp)
{
Modified: branches/indexer-split/src/libtracker-common/tracker-type-utils.h
==============================================================================
--- branches/indexer-split/src/libtracker-common/tracker-type-utils.h (original)
+++ branches/indexer-split/src/libtracker-common/tracker-type-utils.h Mon Sep 8 16:18:41 2008
@@ -27,6 +27,7 @@
G_BEGIN_DECLS
gchar * tracker_date_format (const gchar *time_string);
+gchar * tracker_date_to_time_string (const gchar *date_string);
time_t tracker_string_to_date (const gchar *time_string);
gchar * tracker_date_to_string (time_t date_time);
gchar * tracker_glong_to_string (glong i);
Modified: branches/indexer-split/src/tracker-indexer/tracker-indexer-db.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-indexer-db.c (original)
+++ branches/indexer-split/src/tracker-indexer/tracker-indexer-db.c Mon Sep 8 16:18:41 2008
@@ -613,6 +613,7 @@
TrackerDBInterface *iface;
gint metadata_key;
gchar *id_str;
+ gchar *time_string;
id_str = tracker_guint32_to_string (id);
iface = tracker_db_manager_get_db_interface_by_type (tracker_service_get_name (service),
@@ -641,7 +642,6 @@
break;
case TRACKER_FIELD_TYPE_INTEGER:
- case TRACKER_FIELD_TYPE_DATE:
tracker_db_interface_execute_procedure (iface, NULL,
"SetMetadataNumeric",
id_str,
@@ -650,6 +650,20 @@
NULL);
break;
+ case TRACKER_FIELD_TYPE_DATE:
+
+ time_string = tracker_date_to_time_string (value);
+
+ tracker_db_interface_execute_procedure (iface, NULL,
+ "SetMetadataNumeric",
+ id_str,
+ tracker_field_get_id (field),
+ time_string,
+ NULL);
+ g_free (time_string);
+
+ break;
+
case TRACKER_FIELD_TYPE_FULLTEXT:
tracker_db_set_text (service, id, value);
break;
Modified: branches/indexer-split/src/trackerd/tracker-db.c
==============================================================================
--- branches/indexer-split/src/trackerd/tracker-db.c (original)
+++ branches/indexer-split/src/trackerd/tracker-db.c Mon Sep 8 16:18:41 2008
@@ -291,27 +291,6 @@
}
static gchar *
-format_date (const gchar *avalue)
-{
- gchar *dvalue;
-
- dvalue = tracker_date_format (avalue);
-
- if (dvalue) {
- time_t time;
-
- time = tracker_string_to_date (dvalue);
- g_free (dvalue);
-
- if (time != -1) {
- return tracker_gint_to_string (time);
- }
- }
-
- return NULL;
-}
-
-static gchar *
get_backup_id (TrackerDBInterface *iface,
const gchar *id)
{
@@ -1772,7 +1751,7 @@
continue;
}
- mvalue = format_date (values[i]);
+ mvalue = tracker_date_to_time_string (values[i]);
if (!mvalue) {
g_warning ("Could not format date:'%s'", values[i]);
@@ -1814,7 +1793,7 @@
gchar *esc_value = NULL;
if (tracker_field_get_data_type (def) == TRACKER_FIELD_TYPE_DATE) {
- esc_value = format_date (values[0]);
+ esc_value = tracker_date_to_time_string (values[0]);
if (!esc_value) {
return NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]