[tracker/wip/garnacho/sparql1.1: 16/23] libtracker-data: Add support for RAND() builtin function
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/garnacho/sparql1.1: 16/23] libtracker-data: Add support for RAND() builtin function
- Date: Thu, 20 Aug 2015 08:54:01 +0000 (UTC)
commit 27be3a97e8fd8478c66ca766685f3a9377ce009d
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Jul 29 00:03:14 2015 +0200
libtracker-data: Add support for RAND() builtin function
This function is defined in Sparql 1.1 query language recommendation,
http://www.w3.org/TR/sparql11-query/#idp2130040
src/libtracker-data/tracker-sparql-expression.vala | 6 ++++++
src/libtracker-data/tracker-sparql-scanner.vala | 6 ++++++
2 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-expression.vala
b/src/libtracker-data/tracker-sparql-expression.vala
index 4c5673e..ea5c22c 100644
--- a/src/libtracker-data/tracker-sparql-expression.vala
+++ b/src/libtracker-data/tracker-sparql-expression.vala
@@ -1340,6 +1340,12 @@ class Tracker.Sparql.Expression : Object {
type = translate_aggregate_expression (sql);
sql.append (")");
return type;
+ case SparqlTokenType.RAND:
+ next ();
+ expect (SparqlTokenType.OPEN_PARENS);
+ expect (SparqlTokenType.CLOSE_PARENS);
+ sql.append ("SparqlRand()");
+ return PropertyType.DOUBLE;
case SparqlTokenType.GROUP_CONCAT:
next ();
sql.append ("GROUP_CONCAT(");
diff --git a/src/libtracker-data/tracker-sparql-scanner.vala b/src/libtracker-data/tracker-sparql-scanner.vala
index 3f5e63a..fdd0898 100644
--- a/src/libtracker-data/tracker-sparql-scanner.vala
+++ b/src/libtracker-data/tracker-sparql-scanner.vala
@@ -181,6 +181,10 @@ public class Tracker.SparqlScanner : Object {
case 'n':
if (matches (begin, "NULL")) return SparqlTokenType.NULL;
break;
+ case 'R':
+ case 'r':
+ if (matches (begin, "RAND")) return SparqlTokenType.RAND;
+ break;
case 'T':
case 't':
if (matches (begin, "TRUE")) return SparqlTokenType.TRUE;
@@ -1035,6 +1039,7 @@ public enum Tracker.SparqlTokenType {
PLUS,
PN_PREFIX,
PREFIX,
+ RAND,
REDUCED,
REGEX,
REPLACE,
@@ -1146,6 +1151,7 @@ public enum Tracker.SparqlTokenType {
case PLUS: return "`+'";
case PN_PREFIX: return "prefixed name";
case PREFIX: return "`PREFIX'";
+ case RAND: return "`RAND'";
case REDUCED: return "`REDUCED'";
case REGEX: return "`REGEX'";
case REPLACE: return "`REPLACE'";
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]