[tracker] libtracker-data: Ensure variables are defined in aggregate expressions
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-data: Ensure variables are defined in aggregate expressions
- Date: Tue, 21 Jun 2016 14:33:13 +0000 (UTC)
commit 003f7fdd96e3c3e2588de64a69c889f848e912ec
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jun 5 01:44:12 2016 +0200
libtracker-data: Ensure variables are defined in aggregate expressions
Look those up and error out if they are undefined.
https://bugzilla.gnome.org/show_bug.cgi?id=759361
src/libtracker-data/tracker-sparql-expression.vala | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql-expression.vala
b/src/libtracker-data/tracker-sparql-expression.vala
index 96270cf..210fdff 100644
--- a/src/libtracker-data/tracker-sparql-expression.vala
+++ b/src/libtracker-data/tracker-sparql-expression.vala
@@ -1687,7 +1687,17 @@ class Tracker.Sparql.Expression : Object {
if (accept (SparqlTokenType.DISTINCT)) {
sql.append ("DISTINCT ");
}
+
+ bool is_var = (current () == SparqlTokenType.VAR);
var optype = translate_expression (sql);
+
+ if (is_var) {
+ var variable = context.get_variable (get_last_string ().substring (1));
+ if (variable.binding == null) {
+ throw get_error ("use of undefined variable `%s'".printf (variable.name));
+ }
+ }
+
expect (SparqlTokenType.CLOSE_PARENS);
return optype;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]