[tracker/harmattan: 1903/2240] Add tracker:coalesce function



commit bf2a8ac0bec637b0559f793cac77d8ad2f1e8e07
Author: Mikael Ottela <mikael ottela ixonos com>
Date:   Thu Dec 17 20:38:57 2009 +0200

    Add tracker:coalesce function

 src/libtracker-data/tracker-sparql-query.vala |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index a5b3c36..b77b05c 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -241,6 +241,7 @@ public class Tracker.SparqlQuery : Object {
 
 	const string FN_NS = "http://www.w3.org/2005/xpath-functions#";;
 	const string FTS_NS = "http://www.tracker-project.org/ontologies/fts#";;
+	const string TRACKER_NS = "http://www.tracker-project.org/ontologies/tracker#";;
 
 	string query_string;
 	bool update_extensions;
@@ -1407,6 +1408,19 @@ public class Tracker.SparqlQuery : Object {
 			sql.append_printf ("\"%s_u_offsets\"", v);
 
 			return PropertyType.STRING;
+		} else if (uri == TRACKER_NS + "coalesce") {
+			sql.append ("COALESCE(");
+			translate_expression_as_string (sql);
+			sql.append (", ");
+			expect (SparqlTokenType.COMMA);
+			translate_expression_as_string (sql);
+			while (accept (SparqlTokenType.COMMA)) {
+			      sql.append (", ");
+			      translate_expression_as_string (sql);
+			}
+			sql.append (")");
+
+			return PropertyType.STRING;
 		} else {
 			// support properties as functions
 			var prop = Ontology.get_property_by_uri (uri);



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