Add EXISTS/NOT EXISTS.
- Fixed the precedence order of NOT.
Change-Id: I7ec20753659e2de2fd65e5f858e0f73796b907d0
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1001
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <tillw@apache.org>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
index fcb6eb4..586464c 100644
--- a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
+++ b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
@@ -83,7 +83,6 @@
import org.apache.asterix.lang.common.expression.UnaryExpr;
import org.apache.asterix.lang.common.expression.UnorderedListTypeDefinition;
import org.apache.asterix.lang.common.expression.VariableExpr;
-import org.apache.asterix.lang.common.expression.UnaryExpr.Sign;
import org.apache.asterix.lang.common.literal.DoubleLiteral;
import org.apache.asterix.lang.common.literal.FalseLiteral;
import org.apache.asterix.lang.common.literal.FloatLiteral;
@@ -1582,7 +1581,11 @@
op.addOperand(operand);
op.setCurrentop(true);
}
- op.addOperator(token.image);
+ try{
+ op.addOperator(token.image);
+ } catch (AsterixException e){
+ throw new ParseException(e.getMessage());
+ }
}
operand = AndExpr()
@@ -1613,7 +1616,11 @@
op.addOperand(operand);
op.setCurrentop(true);
}
- op.addOperator(token.image);
+ try{
+ op.addOperator(token.image);
+ } catch (AsterixException e){
+ throw new ParseException(e.getMessage());
+ }
}
operand = RelExpr()
@@ -1665,7 +1672,11 @@
op.setCurrentop(true);
broadcast = false;
}
- op.addOperator(token.image);
+ try{
+ op.addOperator(token.image);
+ } catch (AsterixException e){
+ throw new ParseException(e.getMessage());
+ }
}
operand = AddExpr()
@@ -1704,7 +1715,11 @@
op.addOperand(operand);
op.setCurrentop(true);
}
- ((OperatorExpr)op).addOperator(token.image);
+ try{
+ ((OperatorExpr)op).addOperator(token.image);
+ } catch (AsterixException e){
+ throw new ParseException(e.getMessage());
+ }
}
operand = MultExpr()
@@ -1733,7 +1748,11 @@
op.addOperand(operand);
op.setCurrentop(true);
}
- op.addOperator(token.image);
+ try{
+ op.addOperator(token.image);
+ } catch (AsterixException e){
+ throw new ParseException(e.getMessage());
+ }
}
operand = UnionExpr()
{
@@ -1769,19 +1788,18 @@
Expression UnaryExpr() throws ParseException:
{
- Expression uexpr = null;
+ UnaryExpr uexpr = null;
Expression expr = null;
}
{
( (<PLUS> | <MINUS>)
{
uexpr = new UnaryExpr();
- if("+".equals(token.image))
- ((UnaryExpr)uexpr).setSign(Sign.POSITIVE);
- else if("-".equals(token.image))
- ((UnaryExpr)uexpr).setSign(Sign.NEGATIVE);
- else
- throw new ParseException();
+ try{
+ uexpr.setExprType(token.image);
+ } catch (AsterixException e){
+ throw new ParseException(e.getMessage());
+ }
}
)?