[tracker] SPARQL: Support single-valued properties as functions



commit 53becafc7b1ec935e7f88a3040f9e7eff5de8ae1
Author: Jürg Billeter <j bitron ch>
Date:   Fri Oct 16 10:52:16 2009 +0200

    SPARQL: Support single-valued properties as functions
    
    Fixes NB#134107.

 src/libtracker-data/tracker-sparql-query.vala |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 6570650..404ca78 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -1206,7 +1206,17 @@ public class Tracker.SparqlQuery : Object {
 
 			return PropertyType.BOOLEAN;
 		} else {
-			throw get_error ("Unknown function");
+			// support single valued properties as functions
+			var prop = Ontology.get_property_by_uri (uri);
+			if (prop == null || prop.multiple_values) {
+				throw get_error ("Unknown function");
+			}
+
+			sql.append_printf ("(SELECT \"%s\" FROM \"%s\" WHERE ID = ", prop.name, prop.domain.name);
+			translate_expression (sql);
+			sql.append (")");
+
+			return prop.data_type;
 		}
 	}
 



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