[tracker/parser] SPARQL: Fix SQL variable scoping in group graph patterns
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/parser] SPARQL: Fix SQL variable scoping in group graph patterns
- Date: Fri, 14 Aug 2009 13:38:25 +0000 (UTC)
commit 69917d76a5e510962b32f77e401216fd37f7f5a6
Author: Jürg Billeter <j bitron ch>
Date: Fri Aug 14 13:15:58 2009 +0200
SPARQL: Fix SQL variable scoping in group graph patterns
src/libtracker-data/tracker-sparql-query.vala | 18 ++++--------------
1 files changed, 4 insertions(+), 14 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 1f0c279..8d1ff83 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -1794,10 +1794,8 @@ public class Tracker.SparqlQuery : Object {
}
if (!in_triples_block) {
if (in_group_graph_pattern) {
- sql.insert (group_graph_pattern_start, "(");
- sql.append (" NATURAL INNER JOIN ");
- translate_group_or_union_graph_pattern (sql);
- sql.append (")");
+ sql.insert (group_graph_pattern_start, "SELECT * FROM (");
+ sql.append (") NATURAL INNER JOIN (");
}
in_triples_block = true;
first_where = true;
@@ -1838,18 +1836,14 @@ public class Tracker.SparqlQuery : Object {
in_triples_block = false;
}
if (!in_group_graph_pattern) {
- sql.insert (group_graph_pattern_start, "SELECT * FROM (");
- group_graph_pattern_start += "SELECT * FROM (".len ();
in_group_graph_pattern = true;
}
- sql.insert (group_graph_pattern_start, "(");
+ sql.insert (group_graph_pattern_start, "SELECT * FROM (");
sql.append (") NATURAL LEFT JOIN (");
translate_group_graph_pattern (sql);
sql.append (")");
} else if (current () == SparqlTokenType.OPEN_BRACE) {
if (!in_triples_block && !in_group_graph_pattern) {
- sql.append ("SELECT * FROM (");
- group_graph_pattern_start = sql.len;
in_group_graph_pattern = true;
translate_group_or_union_graph_pattern (sql);
} else {
@@ -1858,12 +1852,10 @@ public class Tracker.SparqlQuery : Object {
in_triples_block = false;
}
if (!in_group_graph_pattern) {
- sql.insert (group_graph_pattern_start, "SELECT * FROM (");
- group_graph_pattern_start += "SELECT * FROM (".len ();
in_group_graph_pattern = true;
}
- sql.insert (group_graph_pattern_start, "(");
+ sql.insert (group_graph_pattern_start, "SELECT * FROM (");
sql.append (") NATURAL INNER JOIN (");
translate_group_or_union_graph_pattern (sql);
sql.append (")");
@@ -1892,8 +1884,6 @@ public class Tracker.SparqlQuery : Object {
}
if (in_group_graph_pattern) {
- // close SELECT * FROM (...
- sql.append (")");
first_where = true;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]