[tracker] Initial implementation for SPARQL str()
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] Initial implementation for SPARQL str()
- Date: Thu, 30 Jul 2009 16:20:38 +0000 (UTC)
commit 18d40c9f916904eeb2bdb0d52e8731a8541145ae
Author: Philip Van Hoof <philip codeminded be>
Date: Thu Jul 30 18:20:07 2009 +0200
Initial implementation for SPARQL str()
src/libtracker-data/tracker-sparql-query.vala | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index d2484f3..6c8ecf1 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -1133,6 +1133,24 @@ public class Tracker.SparqlQuery : Object {
visit_filter (expr.arg1);
pattern_sql.append (")");
break;
+ case Rasqal.Op.STR:
+ if (expr.arg1.literal.type == Rasqal.Literal.Type.VARIABLE) {
+ string variable_name = expr.arg1.literal.as_variable ().name;
+ var binding = var_map.lookup (variable_name);
+
+ if (binding.is_uri) {
+ pattern_sql.append_printf ("(SELECT \"%s\".\"Uri\" as \"STR\" FROM \"%s\" WHERE \"%s\".\"ID\" = \"%s_u\")",
+ binding.table.sql_db_tablename,
+ binding.table.sql_db_tablename,
+ binding.table.sql_db_tablename,
+ variable_name);
+ } else {
+ visit_filter (expr.arg1);
+ }
+ } else {
+ visit_filter (expr.arg1);
+ }
+ break;
case Rasqal.Op.LITERAL:
if (expr.literal.type == Rasqal.Literal.Type.VARIABLE) {
string variable_name = expr.literal.as_variable ().name;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]