Author: rgodfrey
Date: Fri Jun 10 17:37:01 2016
New Revision: 1747761

URL: http://svn.apache.org/viewvc?rev=1747761&view=rev
Log:
QPID-7287 : Query grammar should allow for arithmetic expressions in select and 
order by clauses

Modified:
    
qpid/java/trunk/broker-plugins/management-http/src/main/grammar/ConfiguredObjectFilterParser.jj
    
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectFilterParser.java

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/grammar/ConfiguredObjectFilterParser.jj
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/grammar/ConfiguredObjectFilterParser.jj?rev=1747761&r1=1747760&r2=1747761&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/grammar/ConfiguredObjectFilterParser.jj
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/grammar/ConfiguredObjectFilterParser.jj
 Fri Jun 10 17:37:01 2016
@@ -653,7 +653,7 @@ Expression functionExpression() :
 }
 {
     (
-        t = <FUNCTIONNAME> ( expr = primaryExpr() { args.add(expr); } ( "," 
expr = primaryExpr() { args.add(expr); } )* )? ")"
+        t = <FUNCTIONNAME> ( expr = addExpression() { args.add(expr); } ( "," 
expr = addExpression() { args.add(expr); } )* )? ")"
     )
     {
         return _factory.createFunctionExpression( t.image.substring(0, 
t.image.length() - 1), args );
@@ -715,7 +715,7 @@ Map<String, Expression> selectClauseElem
 
 }
 {
-    ( expr = primaryExpr() ( <AS> name = identifier() )?
+    ( expr = addExpression() ( <AS> name = identifier() )?
       {
           if(name == null)
           {
@@ -746,7 +746,7 @@ OrderByExpression orderByClauseElement()
     OrderByExpression.Order order = OrderByExpression.Order.ASC;
 }
 {
-    ( expr = primaryExpr() ( <ASC> | <DESC> { order = 
OrderByExpression.Order.DESC; } )?
+    ( expr = addExpression() ( <ASC> | <DESC> { order = 
OrderByExpression.Order.DESC; } )?
       {
           return new OrderByExpression(expr, order);
       }

Modified: 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectFilterParser.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectFilterParser.java?rev=1747761&r1=1747760&r2=1747761&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectFilterParser.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/query/ConfiguredObjectFilterParser.java
 Fri Jun 10 17:37:01 2016
@@ -595,6 +595,7 @@ public class ConfiguredObjectFilterParse
     Expression expr;
     t = jj_consume_token(FUNCTIONNAME);
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case NOT:
     case TRUE:
     case FALSE:
     case NULL:
@@ -607,8 +608,10 @@ public class ConfiguredObjectFilterParse
     case ID:
     case QUOTED_ID:
     case 37:
-      expr = primaryExpr();
-                                                    args.add(expr);
+    case 40:
+    case 41:
+      expr = addExpression();
+                                                      args.add(expr);
       label_9:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -619,8 +622,8 @@ public class ConfiguredObjectFilterParse
           break label_9;
         }
         jj_consume_token(38);
-        expr = primaryExpr();
-                                                                               
                    args.add(expr);
+        expr = addExpression();
+                                                                               
                        args.add(expr);
       }
       break;
     default:
@@ -687,7 +690,7 @@ public class ConfiguredObjectFilterParse
   final public Map<String, Expression> selectClauseElement() throws 
ParseException {
     String name = null;
     Expression expr;
-    expr = primaryExpr();
+    expr = addExpression();
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case AS:
       jj_consume_token(AS);
@@ -730,7 +733,7 @@ public class ConfiguredObjectFilterParse
     Expression expr;
     OrderByExpression orderByExpr;
     OrderByExpression.Order order = OrderByExpression.Order.ASC;
-    expr = primaryExpr();
+    expr = addExpression();
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case ASC:
     case DESC:
@@ -740,7 +743,7 @@ public class ConfiguredObjectFilterParse
         break;
       case DESC:
         jj_consume_token(DESC);
-                                              order = 
OrderByExpression.Order.DESC;
+                                                order = 
OrderByExpression.Order.DESC;
         break;
       default:
         jj_consume_token(-1);
@@ -804,7 +807,7 @@ public class ConfiguredObjectFilterParse
 
   private boolean jj_3R_67() {
     if (jj_scan_token(ESCAPE)) return true;
-    if (jj_3R_47()) return true;
+    if (jj_3R_48()) return true;
     return false;
   }
 
@@ -828,12 +831,12 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_48() {
-    if (jj_3R_50()) return true;
+  private boolean jj_3R_49() {
+    if (jj_3R_52()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_51()) { jj_scanpos = xsp; break; }
+      if (jj_3R_53()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
@@ -841,16 +844,16 @@ public class ConfiguredObjectFilterParse
   private boolean jj_3_2() {
     if (jj_scan_token(NOT)) return true;
     if (jj_scan_token(LIKE)) return true;
-    if (jj_3R_47()) return true;
+    if (jj_3R_48()) return true;
     Token xsp;
     xsp = jj_scanpos;
     if (jj_3R_68()) jj_scanpos = xsp;
     return false;
   }
 
-  private boolean jj_3R_62() {
+  private boolean jj_3R_64() {
     if (jj_scan_token(LIKE)) return true;
-    if (jj_3R_47()) return true;
+    if (jj_3R_48()) return true;
     Token xsp;
     xsp = jj_scanpos;
     if (jj_3R_67()) jj_scanpos = xsp;
@@ -887,9 +890,9 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_49() {
+  private boolean jj_3R_50() {
     if (jj_scan_token(AND)) return true;
-    if (jj_3R_48()) return true;
+    if (jj_3R_49()) return true;
     return false;
   }
 
@@ -918,18 +921,18 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_66() {
+  private boolean jj_3R_55() {
     if (jj_scan_token(41)) return true;
     if (jj_3R_12()) return true;
     return false;
   }
 
   private boolean jj_3R_44() {
-    if (jj_3R_48()) return true;
+    if (jj_3R_49()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_49()) { jj_scanpos = xsp; break; }
+      if (jj_3R_50()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
@@ -945,14 +948,20 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_61() {
+  private boolean jj_3R_63() {
     if (jj_scan_token(36)) return true;
-    if (jj_3R_52()) return true;
+    if (jj_3R_46()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_47() {
+    if (jj_scan_token(38)) return true;
+    if (jj_3R_46()) return true;
     return false;
   }
 
   private boolean jj_3R_35() {
-    if (jj_3R_47()) return true;
+    if (jj_3R_48()) return true;
     return false;
   }
 
@@ -964,21 +973,15 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_46() {
-    if (jj_scan_token(38)) return true;
-    if (jj_3R_25()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_65() {
+  private boolean jj_3R_54() {
     if (jj_scan_token(40)) return true;
     if (jj_3R_12()) return true;
     return false;
   }
 
-  private boolean jj_3R_60() {
+  private boolean jj_3R_62() {
     if (jj_scan_token(35)) return true;
-    if (jj_3R_52()) return true;
+    if (jj_3R_46()) return true;
     return false;
   }
 
@@ -1016,12 +1019,12 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_57() {
+  private boolean jj_3R_51() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_65()) {
+    if (jj_3R_54()) {
     jj_scanpos = xsp;
-    if (jj_3R_66()) return true;
+    if (jj_3R_55()) return true;
     }
     return false;
   }
@@ -1052,38 +1055,38 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_59() {
+  private boolean jj_3R_61() {
     if (jj_scan_token(34)) return true;
-    if (jj_3R_52()) return true;
+    if (jj_3R_46()) return true;
     return false;
   }
 
-  private boolean jj_3R_58() {
+  private boolean jj_3R_60() {
     if (jj_scan_token(33)) return true;
-    if (jj_3R_52()) return true;
+    if (jj_3R_46()) return true;
     return false;
   }
 
-  private boolean jj_3R_53() {
+  private boolean jj_3R_56() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_58()) {
-    jj_scanpos = xsp;
-    if (jj_3R_59()) {
-    jj_scanpos = xsp;
     if (jj_3R_60()) {
     jj_scanpos = xsp;
     if (jj_3R_61()) {
     jj_scanpos = xsp;
     if (jj_3R_62()) {
     jj_scanpos = xsp;
+    if (jj_3R_63()) {
+    jj_scanpos = xsp;
+    if (jj_3R_64()) {
+    jj_scanpos = xsp;
     if (jj_3_2()) {
     jj_scanpos = xsp;
-    if (jj_3R_63()) {
+    if (jj_3R_65()) {
     jj_scanpos = xsp;
     if (jj_3_3()) {
     jj_scanpos = xsp;
-    if (jj_3R_64()) {
+    if (jj_3R_66()) {
     jj_scanpos = xsp;
     if (jj_3_4()) return true;
     }
@@ -1098,12 +1101,12 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_52() {
+  private boolean jj_3R_46() {
     if (jj_3R_12()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_57()) { jj_scanpos = xsp; break; }
+      if (jj_3R_51()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
@@ -1162,17 +1165,17 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_50() {
-    if (jj_3R_52()) return true;
+  private boolean jj_3R_52() {
+    if (jj_3R_46()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_53()) { jj_scanpos = xsp; break; }
+      if (jj_3R_56()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_47() {
+  private boolean jj_3R_48() {
     if (jj_scan_token(STRING_LITERAL)) return true;
     return false;
   }
@@ -1199,7 +1202,7 @@ public class ConfiguredObjectFilterParse
 
   private boolean jj_3R_68() {
     if (jj_scan_token(ESCAPE)) return true;
-    if (jj_3R_47()) return true;
+    if (jj_3R_48()) return true;
     return false;
   }
 
@@ -1220,7 +1223,7 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_64() {
+  private boolean jj_3R_66() {
     if (jj_scan_token(IN)) return true;
     if (jj_scan_token(37)) return true;
     if (jj_3R_25()) return true;
@@ -1233,7 +1236,7 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_56() {
+  private boolean jj_3R_59() {
     if (jj_scan_token(IS)) return true;
     if (jj_scan_token(NOT)) return true;
     if (jj_scan_token(NULL)) return true;
@@ -1247,11 +1250,11 @@ public class ConfiguredObjectFilterParse
   }
 
   private boolean jj_3R_34() {
-    if (jj_3R_25()) return true;
+    if (jj_3R_46()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_46()) { jj_scanpos = xsp; break; }
+      if (jj_3R_47()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
@@ -1298,9 +1301,9 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_55() {
+  private boolean jj_3R_58() {
     if (jj_scan_token(32)) return true;
-    if (jj_3R_50()) return true;
+    if (jj_3R_52()) return true;
     return false;
   }
 
@@ -1317,28 +1320,28 @@ public class ConfiguredObjectFilterParse
   private boolean jj_3_3() {
     if (jj_scan_token(NOT)) return true;
     if (jj_scan_token(BETWEEN)) return true;
-    if (jj_3R_52()) return true;
+    if (jj_3R_46()) return true;
     if (jj_scan_token(AND)) return true;
-    if (jj_3R_52()) return true;
+    if (jj_3R_46()) return true;
     return false;
   }
 
-  private boolean jj_3R_54() {
+  private boolean jj_3R_57() {
     if (jj_scan_token(31)) return true;
-    if (jj_3R_50()) return true;
+    if (jj_3R_52()) return true;
     return false;
   }
 
-  private boolean jj_3R_51() {
+  private boolean jj_3R_53() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_54()) {
+    if (jj_3R_57()) {
     jj_scanpos = xsp;
-    if (jj_3R_55()) {
+    if (jj_3R_58()) {
     jj_scanpos = xsp;
     if (jj_3_1()) {
     jj_scanpos = xsp;
-    if (jj_3R_56()) return true;
+    if (jj_3R_59()) return true;
     }
     }
     }
@@ -1350,11 +1353,11 @@ public class ConfiguredObjectFilterParse
     return false;
   }
 
-  private boolean jj_3R_63() {
+  private boolean jj_3R_65() {
     if (jj_scan_token(BETWEEN)) return true;
-    if (jj_3R_52()) return true;
+    if (jj_3R_46()) return true;
     if (jj_scan_token(AND)) return true;
-    if (jj_3R_52()) return true;
+    if (jj_3R_46()) return true;
     return false;
   }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to