[tracker] Added support for SPARQL ASK
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] Added support for SPARQL ASK
- Date: Fri, 31 Jul 2009 11:58:28 +0000 (UTC)
commit 1e2f216719d81e53b80d02242a775f9259bab04a
Author: Philip Van Hoof <philip codeminded be>
Date: Fri Jul 31 13:58:00 2009 +0200
Added support for SPARQL ASK
src/libtracker-data/tracker-sparql-query.vala | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 5f93bf7..94ba01f 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -305,6 +305,8 @@ public class Tracker.SparqlQuery : Object {
}
}
+ private bool is_ask { get; set; }
+
public DBResultSet? execute () throws Error {
var world = new Rasqal.World ();
world.open ();
@@ -339,7 +341,8 @@ public class Tracker.SparqlQuery : Object {
} else if (query.get_verb () == Rasqal.QueryVerb.DESCRIBE) {
throw new SparqlError.INTERNAL ("DESCRIBE is not supported");
} else if (query.get_verb () == Rasqal.QueryVerb.ASK) {
- throw new SparqlError.INTERNAL ("ASK is not supported");
+ is_ask = true;
+ return execute_select (query);
} else {
throw new SparqlError.PARSE ("DELETE and INSERT are not supported in query mode");
}
@@ -434,6 +437,11 @@ public class Tracker.SparqlQuery : Object {
if (query.get_distinct ()) {
sql.append ("DISTINCT ");
}
+
+ if (is_ask) {
+ sql.append ("COUNT(1) > 0");
+ }
+
bool first = true;
for (int var_idx = 0; true; var_idx++) {
weak Rasqal.Variable variable = query.get_variable (var_idx);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]