[tracker/parser] SPARQL: limited ISBLANK support
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/parser] SPARQL: limited ISBLANK support
- Date: Thu, 13 Aug 2009 09:43:29 +0000 (UTC)
commit 333e4c776bcacd899d4e0d6886e9183d8ace232b
Author: Philip Van Hoof <philip codeminded be>
Date: Thu Aug 13 11:42:45 2009 +0200
SPARQL: limited ISBLANK support
src/libtracker-data/tracker-sparql-query.vala | 13 ++++++++++---
src/libtracker-data/tracker-sparql-scanner.vala | 6 ++++++
2 files changed, 16 insertions(+), 3 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-query.vala b/src/libtracker-data/tracker-sparql-query.vala
index 95ea075..a2641d9 100644
--- a/src/libtracker-data/tracker-sparql-query.vala
+++ b/src/libtracker-data/tracker-sparql-query.vala
@@ -1260,7 +1260,14 @@ public class Tracker.SparqlQuery : Object {
case SparqlTokenType.ISURI:
translate_isuri (sql);
return DataType.BOOLEAN;
- // case SparqlTokenType.ISBLANK:
+ case SparqlTokenType.ISBLANK:
+ next ();
+ expect (SparqlTokenType.OPEN_PARENS);
+ next ();
+ // TODO: support ISBLANK properly
+ sql.append ("0");
+ expect (SparqlTokenType.CLOSE_PARENS);
+ return DataType.BOOLEAN;
case SparqlTokenType.ISLITERAL:
next ();
return DataType.BOOLEAN;
@@ -1478,7 +1485,7 @@ public class Tracker.SparqlQuery : Object {
case SparqlTokenType.SAMETERM:
case SparqlTokenType.ISIRI:
case SparqlTokenType.ISURI:
- // case SparqlTokenType.ISBLANK:
+ case SparqlTokenType.ISBLANK:
case SparqlTokenType.ISLITERAL:
case SparqlTokenType.REGEX:
return translate_primary_expression (sql);
@@ -1503,7 +1510,7 @@ public class Tracker.SparqlQuery : Object {
case SparqlTokenType.SAMETERM:
case SparqlTokenType.ISIRI:
case SparqlTokenType.ISURI:
- // case SparqlTokenType.ISBLANK:
+ case SparqlTokenType.ISBLANK:
case SparqlTokenType.ISLITERAL:
case SparqlTokenType.REGEX:
next ();
diff --git a/src/libtracker-data/tracker-sparql-scanner.vala b/src/libtracker-data/tracker-sparql-scanner.vala
index 71382de..9dbfbff 100644
--- a/src/libtracker-data/tracker-sparql-scanner.vala
+++ b/src/libtracker-data/tracker-sparql-scanner.vala
@@ -255,6 +255,10 @@ public class Tracker.SparqlScanner : Object {
case 'r':
if (matches (begin, "REDUCED")) return SparqlTokenType.REDUCED;
break;
+ case 'I':
+ case 'i':
+ if (matches (begin, "ISBLANK")) return SparqlTokenType.ISBLANK;
+ break;
}
break;
case 8:
@@ -779,6 +783,7 @@ public enum Tracker.SparqlTokenType {
ISIRI,
ISLITERAL,
ISURI,
+ ISBLANK,
LANG,
LANGMATCHES,
LIMIT,
@@ -849,6 +854,7 @@ public enum Tracker.SparqlTokenType {
case INTEGER: return "`INTEGER'";
case INTO: return "`INTO'";
case ISIRI: return "`ISIRI'";
+ case ISBLANK: return "`ISBLANK'";
case ISLITERAL: return "`ISLITERAL'";
case ISURI: return "`ISURI'";
case LANG: return "`LANG'";
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]