[tracker/date] libtracker-data: Add support for xsd:date



commit 3d268fa0902ba046f9d5c98965cf28ce9665429a
Author: JÃrg Billeter <j bitron ch>
Date:   Thu May 12 10:06:55 2011 +0200

    libtracker-data: Add support for xsd:date
    
    Fixes NB#271747.

 src/libtracker-data/tracker-data-update.c          |    3 +++
 src/libtracker-data/tracker-sparql-expression.vala |    7 ++++++-
 2 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index 2d26f99..8331625 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -1505,6 +1505,9 @@ string_to_gvalue (const gchar         *value,
 		g_value_set_double (gvalue, atof (value));
 		break;
 	case TRACKER_PROPERTY_TYPE_DATE:
+		g_value_init (gvalue, G_TYPE_INT64);
+		g_value_set_int64 (gvalue, tracker_date_from_string (gvalue));
+		break;
 	case TRACKER_PROPERTY_TYPE_DATETIME:
 		g_value_init (gvalue, TRACKER_TYPE_DATE_TIME);
 		tracker_date_time_set_from_string (gvalue, value, error);
diff --git a/src/libtracker-data/tracker-sparql-expression.vala b/src/libtracker-data/tracker-sparql-expression.vala
index 17cc349..b3974bd 100644
--- a/src/libtracker-data/tracker-sparql-expression.vala
+++ b/src/libtracker-data/tracker-sparql-expression.vala
@@ -71,7 +71,7 @@ class Tracker.Sparql.Expression : Object {
 	}
 
 	bool maybe_numeric (PropertyType type) {
-		return (type == PropertyType.INTEGER || type == PropertyType.DOUBLE || type == PropertyType.DATETIME || type == PropertyType.UNKNOWN);
+		return (type == PropertyType.INTEGER || type == PropertyType.DOUBLE || type == PropertyType.DATE || type == PropertyType.DATETIME || type == PropertyType.UNKNOWN);
 	}
 
 	void append_collate (StringBuilder sql) {
@@ -287,6 +287,11 @@ class Tracker.Sparql.Expression : Object {
 			sql.insert (begin, "CASE ");
 			sql.append (" WHEN 1 THEN 'true' WHEN 0 THEN 'false' ELSE NULL END");
 			break;
+		case PropertyType.DATE:
+			// ISO 8601 format
+			sql.insert (begin, "strftime (\"%Y-%m-%d\", ");
+			sql.append (", \"unixepoch\")");
+			break;
 		case PropertyType.DATETIME:
 			// ISO 8601 format
 			sql.insert (begin, "strftime (\"%Y-%m-%dT%H:%M:%SZ\", ");



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]