[tracker/wip/garnacho/sparql1.1: 7/23] libtracker-data: Add support for the ABS() builtin function
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/garnacho/sparql1.1: 7/23] libtracker-data: Add support for the ABS() builtin function
- Date: Thu, 20 Aug 2015 08:53:16 +0000 (UTC)
commit 6e193ec049f789bbb7e0f717d86b92425bfe0109
Author: Carlos Garnacho <carlosg gnome org>
Date: Tue Jul 28 20:30:19 2015 +0200
libtracker-data: Add support for the ABS() builtin function
This function is defined in Sparql 1.1 query language recommendation,
http://www.w3.org/TR/sparql11-query/#func-abs
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 b71f5e0..7367486 100644
--- a/src/libtracker-data/tracker-sparql-expression.vala
+++ b/src/libtracker-data/tracker-sparql-expression.vala
@@ -1286,6 +1286,12 @@ class Tracker.Sparql.Expression : Object {
type = translate_aggregate_expression (sql);
sql.append (")");
return type;
+ case SparqlTokenType.ABS:
+ next ();
+ sql.append ("ABS(");
+ type = translate_aggregate_expression (sql);
+ sql.append (")");
+ return type;
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 3ffeace..42d8c54 100644
--- a/src/libtracker-data/tracker-sparql-scanner.vala
+++ b/src/libtracker-data/tracker-sparql-scanner.vala
@@ -96,6 +96,10 @@ public class Tracker.SparqlScanner : Object {
break;
}
break;
+ case 'B':
+ case 'b':
+ if (matches (begin, "ABS")) return SparqlTokenType.ABS;
+ break;
case 'V':
case 'v':
if (matches (begin, "AVG")) return SparqlTokenType.AVG;
@@ -904,6 +908,7 @@ public struct Tracker.SourceLocation {
public enum Tracker.SparqlTokenType {
NONE,
A,
+ ABS,
AS,
ASC,
ASK,
@@ -1012,6 +1017,7 @@ public enum Tracker.SparqlTokenType {
public unowned string to_string () {
switch (this) {
case A: return "`a'";
+ case ABS: return "`ABS'";
case AS: return "`AS'";
case ASC: return "`ASC'";
case ASK: return "`ASK'";
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]