summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2010-05-19 13:50:34 +0200
committerMartyn Russell <martyn@lanedo.com>2010-05-20 16:19:13 +0100
commit9742b6d4acafbfd380597827072d39ae4268b49f (patch)
tree887b9e7b897e8230f6b3174d8fcdae40bc1025db
parentaa2523fd2283b844c364af7379d74a58ce21cbc3 (diff)
downloadtracker-9742b6d4acafbfd380597827072d39ae4268b49f.tar.gz
SPARQL: Add tracker:id function
This returns the internal integer ID to be used as last sort key in queries. This helps retrieving results in stable order which is important for paged queries.
-rw-r--r--src/libtracker-data/tracker-sparql-expression.vala7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libtracker-data/tracker-sparql-expression.vala b/src/libtracker-data/tracker-sparql-expression.vala
index 94adfdada..95b70c49d 100644
--- a/src/libtracker-data/tracker-sparql-expression.vala
+++ b/src/libtracker-data/tracker-sparql-expression.vala
@@ -548,6 +548,13 @@ class Tracker.Sparql.Expression : Object {
sql.append_printf ("\"%s_u_offsets\"", v);
return PropertyType.STRING;
+ } else if (uri == TRACKER_NS + "id") {
+ var type = translate_expression (sql);
+ if (type != PropertyType.RESOURCE) {
+ throw get_error ("expected resource");
+ }
+
+ return PropertyType.INTEGER;
} else if (uri == TRACKER_NS + "cartesian-distance") {
sql.append ("SparqlCartesianDistance(");
translate_expression (sql);