[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jboss-cvs-commits
Subject:    [jboss-cvs] jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql ASTSum.java ASTAvg.java ASTMax.java ASTMi
From:       Alexey Loubyansky <loubyansky () users ! sourceforge ! net>
Date:       2003-09-30 13:33:35
[Download RAW message or body]

  User: loubyansky
  Date: 03/09/30 06:33:34

  Modified:    src/main/org/jboss/ejb/plugins/cmp/ejbql Tag: Branch_3_2
                        BasicVisitor.java JBossQLParser.jjt
  Added:       src/main/org/jboss/ejb/plugins/cmp/ejbql Tag: Branch_3_2
                        ASTSum.java ASTAvg.java ASTMax.java ASTMin.java
  Log:
  new JBossQL functions: MAX, MIN, AVG, SUM; some optimizations
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.4.2.5   +203 -85   jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql/BasicVisitor.java
  
  Index: BasicVisitor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql/BasicVisitor.java,v
  retrieving revision 1.4.2.4
  retrieving revision 1.4.2.5
  diff -u -r1.4.2.4 -r1.4.2.5
  --- BasicVisitor.java	18 Sep 2003 18:30:27 -0000	1.4.2.4
  +++ BasicVisitor.java	30 Sep 2003 13:33:34 -0000	1.4.2.5
  @@ -4,28 +4,33 @@
    * Distributable under LGPL license.
    * See terms of license at gnu.org.
    */
  - 
  +
   package org.jboss.ejb.plugins.cmp.ejbql;
   
   import org.jboss.ejb.plugins.cmp.jdbc.SQLUtil;
   
   /**
    * This a basic abstract syntax tree visitor.  It simply converts the tree
  - * back into ejbql.  This is useful for testing and extensions, as most 
  + * back into ejbql.  This is useful for testing and extensions, as most
    * extensions translate just a few elements of the tree.
    *
    * @author <a href="mailto:dain@daingroup.com">Dain Sundstrom</a>
  - * @version $Revision: 1.4.2.4 $
  - */                            
  -public class BasicVisitor implements JBossQLParserVisitor {
  -   public Object visit(SimpleNode node, Object data) {
  + * @version $Revision: 1.4.2.5 $
  + */
  +public class BasicVisitor implements JBossQLParserVisitor
  +{
  +   public Object visit(SimpleNode node, Object data)
  +   {
         return data;
      }
   
  -   public Object visit(ASTEJBQL node, Object data) {
  -      StringBuffer buf = (StringBuffer)data;
  -      for(int i=0; i < node.jjtGetNumChildren(); i++) {
  -         if(i > 0) {
  +   public Object visit(ASTEJBQL node, Object data)
  +   {
  +      StringBuffer buf = (StringBuffer)data;
  +      for(int i = 0; i < node.jjtGetNumChildren(); i++)
  +      {
  +         if(i > 0)
  +         {
               buf.append(' ');
            }
            node.jjtGetChild(i).jjtAccept(this, data);
  @@ -33,11 +38,14 @@
         return data;
      }
   
  -   public Object visit(ASTFrom node, Object data) {
  +   public Object visit(ASTFrom node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.FROM);
  -      for(int i=0; i < node.jjtGetNumChildren(); i++) {
  -         if(i > 0) {
  +      for(int i = 0; i < node.jjtGetNumChildren(); i++)
  +      {
  +         if(i > 0)
  +         {
               buf.append(SQLUtil.COMMA);
            }
            node.jjtGetChild(i).jjtAccept(this, data);
  @@ -45,7 +53,8 @@
         return data;
      }
   
  -   public Object visit(ASTCollectionMemberDeclaration node, Object data) {
  +   public Object visit(ASTCollectionMemberDeclaration node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.IN).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -54,7 +63,8 @@
         return data;
      }
   
  -   public Object visit(ASTRangeVariableDeclaration node, Object data) {
  +   public Object visit(ASTRangeVariableDeclaration node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(' ');
  @@ -62,24 +72,29 @@
         return data;
      }
   
  -   public Object visit(ASTSelect node, Object data) {
  +   public Object visit(ASTSelect node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.SELECT);
         node.jjtGetChild(0).jjtAccept(this, data);
         return data;
      }
   
  -   public Object visit(ASTWhere node, Object data) {
  +   public Object visit(ASTWhere node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.WHERE);
         node.jjtGetChild(0).jjtAccept(this, data);
         return data;
      }
   
  -   public Object visit(ASTOr node, Object data) {
  +   public Object visit(ASTOr node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
  -      for(int i=0; i < node.jjtGetNumChildren(); i++) {
  -         if(i > 0) {
  +      for(int i = 0; i < node.jjtGetNumChildren(); i++)
  +      {
  +         if(i > 0)
  +         {
               buf.append(SQLUtil.OR);
            }
            node.jjtGetChild(i).jjtAccept(this, data);
  @@ -87,10 +102,13 @@
         return data;
      }
   
  -   public Object visit(ASTAnd node, Object data) {
  +   public Object visit(ASTAnd node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
  -      for(int i=0; i < node.jjtGetNumChildren(); i++) {
  -         if(i > 0) {
  +      for(int i = 0; i < node.jjtGetNumChildren(); i++)
  +      {
  +         if(i > 0)
  +         {
               buf.append(SQLUtil.AND);
            }
            node.jjtGetChild(i).jjtAccept(this, data);
  @@ -98,14 +116,16 @@
         return data;
      }
   
  -   public Object visit(ASTNot node, Object data) {
  +   public Object visit(ASTNot node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.NOT);
         node.jjtGetChild(0).jjtAccept(this, data);
         return data;
      }
   
  -   public Object visit(ASTConditionalParenthetical node, Object data) {
  +   public Object visit(ASTConditionalParenthetical node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -113,10 +133,12 @@
         return data;
      }
   
  -   public Object visit(ASTBetween node, Object data) {
  +   public Object visit(ASTBetween node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
  -      if(node.not) {
  +      if(node.not)
  +      {
            buf.append(SQLUtil.NOT);
         }
         buf.append(SQLUtil.BETWEEN);
  @@ -126,15 +148,18 @@
         return data;
      }
   
  -   public Object visit(ASTIn node, Object data) {
  +   public Object visit(ASTIn node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
  -      if(node.not) {
  +      if(node.not)
  +      {
            buf.append(SQLUtil.NOT);
         }
         buf.append(SQLUtil.IN).append('(');
         node.jjtGetChild(1).jjtAccept(this, data);
  -      for(int i=2; i < node.jjtGetNumChildren(); i++) {
  +      for(int i = 2; i < node.jjtGetNumChildren(); i++)
  +      {
            buf.append(SQLUtil.COMMA);
            node.jjtGetChild(i).jjtAccept(this, data);
         }
  @@ -142,48 +167,57 @@
         return data;
      }
   
  -   public Object visit(ASTLike node, Object data) {
  +   public Object visit(ASTLike node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
  -      if(node.not) {
  +      if(node.not)
  +      {
            buf.append(SQLUtil.NOT);
         }
         buf.append(SQLUtil.LIKE);
         node.jjtGetChild(1).jjtAccept(this, data);
  -      if(node.jjtGetNumChildren()==3) {
  +      if(node.jjtGetNumChildren() == 3)
  +      {
            buf.append(SQLUtil.ESCAPE);
            node.jjtGetChild(2).jjtAccept(this, data);
         }
         return data;
      }
   
  -   
  -   public Object visit(ASTNullComparison node, Object data) {
  +
  +   public Object visit(ASTNullComparison node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(SQLUtil.IS);
  -      if(node.not) {
  +      if(node.not)
  +      {
            buf.append(SQLUtil.NOT);
         }
         buf.append(SQLUtil.NULL);
         return data;
      }
   
  -   public Object visit(ASTIsEmpty node, Object data) {
  +   public Object visit(ASTIsEmpty node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(SQLUtil.IS);
  -      if(node.not) {
  +      if(node.not)
  +      {
            buf.append(SQLUtil.NOT);
         }
         buf.append(SQLUtil.EMPTY);
         return data;
      }
   
  -   public Object visit(ASTMemberOf node, Object data) {
  +   public Object visit(ASTMemberOf node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
  -      if(node.not) {
  +      if(node.not)
  +      {
            buf.append(SQLUtil.NOT);
         }
         buf.append(SQLUtil.MEMBER_OF);
  @@ -191,7 +225,8 @@
         return data;
      }
   
  -   public Object visit(ASTStringComparison node, Object data) {
  +   public Object visit(ASTStringComparison node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(' ').append(node.opp).append(' ');
  @@ -199,17 +234,20 @@
         return data;
      }
   
  -   public Object visit(ASTBooleanComparison node, Object data) {
  +   public Object visit(ASTBooleanComparison node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
  -      if(node.jjtGetNumChildren()==2) {
  +      if(node.jjtGetNumChildren() == 2)
  +      {
            buf.append(' ').append(node.opp).append(' ');
            node.jjtGetChild(1).jjtAccept(this, data);
         }
         return data;
      }
   
  -   public Object visit(ASTDatetimeComparison node, Object data) {
  +   public Object visit(ASTDatetimeComparison node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(' ').append(node.opp).append(' ');
  @@ -217,7 +255,8 @@
         return data;
      }
   
  -   public Object visit(ASTEntityComparison node, Object data) {
  +   public Object visit(ASTEntityComparison node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(' ').append(node.opp).append(' ');
  @@ -225,7 +264,8 @@
         return data;
      }
   
  -   public Object visit(ASTValueClassComparison node, Object data) {
  +   public Object visit(ASTValueClassComparison node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(' ').append(node.opp).append(' ');
  @@ -233,7 +273,8 @@
         return data;
      }
   
  -   public Object visit(ASTArithmeticComparison node, Object data) {
  +   public Object visit(ASTArithmeticComparison node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(' ').append(node.opp).append(' ');
  @@ -241,36 +282,44 @@
         return data;
      }
   
  -   public Object visit(ASTPlusMinus node, Object data) {
  +   public Object visit(ASTPlusMinus node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
  -      for(int i=0; i < node.jjtGetNumChildren(); i++) {
  -         if(i > 0) {
  -            buf.append(' ').append(node.opps.get(i-1)).append(' ');
  +      for(int i = 0; i < node.jjtGetNumChildren(); i++)
  +      {
  +         if(i > 0)
  +         {
  +            buf.append(' ').append(node.opps.get(i - 1)).append(' ');
            }
            node.jjtGetChild(i).jjtAccept(this, data);
         }
         return data;
      }
   
  -   public Object visit(ASTMultDiv node, Object data) {
  +   public Object visit(ASTMultDiv node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
  -      for(int i=0; i < node.jjtGetNumChildren(); i++) {
  -         if(i > 0) {
  -            buf.append(' ').append(node.opps.get(i-1)).append(' ');
  +      for(int i = 0; i < node.jjtGetNumChildren(); i++)
  +      {
  +         if(i > 0)
  +         {
  +            buf.append(' ').append(node.opps.get(i - 1)).append(' ');
            }
            node.jjtGetChild(i).jjtAccept(this, data);
         }
         return data;
      }
   
  -   public Object visit(ASTNegation node, Object data) {
  +   public Object visit(ASTNegation node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append('-');
         node.jjtGetChild(0).jjtAccept(this, data);
         return data;
      }
   
  -   public Object visit(ASTArithmeticParenthetical node, Object data) {
  +   public Object visit(ASTArithmeticParenthetical node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -278,7 +327,8 @@
         return data;
      }
   
  -   public Object visit(ASTStringParenthetical node, Object data) {
  +   public Object visit(ASTStringParenthetical node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -286,7 +336,8 @@
         return data;
      }
   
  -   public Object visit(ASTConcat node, Object data) {
  +   public Object visit(ASTConcat node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.CONCAT).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -296,7 +347,8 @@
         return data;
      }
   
  -   public Object visit(ASTSubstring node, Object data) {
  +   public Object visit(ASTSubstring node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.SUBSTRING).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -308,7 +360,8 @@
         return data;
      }
   
  -   public Object visit(ASTLCase node, Object data) {
  +   public Object visit(ASTLCase node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.LCASE).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -316,7 +369,8 @@
         return data;
      }
   
  -   public Object visit(ASTUCase node, Object data) {
  +   public Object visit(ASTUCase node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.UCASE).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -324,7 +378,8 @@
         return data;
      }
   
  -   public Object visit(ASTLength node, Object data) {
  +   public Object visit(ASTLength node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.LENGTH).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -332,13 +387,15 @@
         return data;
      }
   
  -   public Object visit(ASTLocate node, Object data) {
  +   public Object visit(ASTLocate node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.LOCATE).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
         buf.append(SQLUtil.COMMA);
         node.jjtGetChild(1).jjtAccept(this, data);
  -      if(node.jjtGetNumChildren()==3) {
  +      if(node.jjtGetNumChildren() == 3)
  +      {
            buf.append(SQLUtil.COMMA);
            node.jjtGetChild(2).jjtAccept(this, data);
         }
  @@ -346,7 +403,8 @@
         return data;
      }
   
  -   public Object visit(ASTAbs node, Object data) {
  +   public Object visit(ASTAbs node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.ABS).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -354,7 +412,8 @@
         return data;
      }
   
  -   public Object visit(ASTSqrt node, Object data) {
  +   public Object visit(ASTSqrt node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.SQRT).append('(');
         node.jjtGetChild(0).jjtAccept(this, data);
  @@ -362,7 +421,8 @@
         return data;
      }
   
  -   public Object visit(ASTCount node, Object data) {
  +   public Object visit(ASTCount node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(SQLUtil.COUNT).append('(');
         ASTPath path = (ASTPath)node.jjtGetChild(0);
  @@ -371,12 +431,55 @@
         return data;
      }
   
  -   public Object visit(ASTOrderBy node, Object data) {
  +   public Object visit(ASTMax node, Object data)
  +   {
  +      StringBuffer buf = (StringBuffer)data;
  +      buf.append(SQLUtil.MAX).append('(');
  +      ASTPath path = (ASTPath)node.jjtGetChild(0);
  +      path.children[0].jjtAccept(this, data);
  +      buf.append(')');
  +      return data;
  +   }
  +
  +   public Object visit(ASTMin node, Object data)
  +   {
  +      StringBuffer buf = (StringBuffer)data;
  +      buf.append(SQLUtil.MIN).append('(');
  +      ASTPath path = (ASTPath)node.jjtGetChild(0);
  +      path.children[0].jjtAccept(this, data);
  +      buf.append(')');
  +      return data;
  +   }
  +
  +   public Object visit(ASTAvg node, Object data)
  +   {
  +      StringBuffer buf = (StringBuffer)data;
  +      buf.append(SQLUtil.AVG).append('(');
  +      ASTPath path = (ASTPath)node.jjtGetChild(0);
  +      path.children[0].jjtAccept(this, data);
  +      buf.append(')');
  +      return data;
  +   }
  +
  +   public Object visit(ASTSum node, Object data)
  +   {
  +      StringBuffer buf = (StringBuffer)data;
  +      buf.append(SQLUtil.SUM).append('(');
  +      ASTPath path = (ASTPath)node.jjtGetChild(0);
  +      path.children[0].jjtAccept(this, data);
  +      buf.append(')');
  +      return data;
  +   }
  +
  +   public Object visit(ASTOrderBy node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
   
         buf.append(SQLUtil.ORDERBY);
  -      for(int i=0; i < node.jjtGetNumChildren(); i++) {
  -         if(i > 0) {
  +      for(int i = 0; i < node.jjtGetNumChildren(); i++)
  +      {
  +         if(i > 0)
  +         {
               buf.append(SQLUtil.COMMA);
            }
            node.jjtGetChild(i).jjtAccept(this, data);
  @@ -384,74 +487,89 @@
         return data;
      }
   
  -   public Object visit(ASTOrderByPath node, Object data) {
  +   public Object visit(ASTOrderByPath node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
   
         node.jjtGetChild(0).jjtAccept(this, data);
  -      if(node.ascending) {
  +      if(node.ascending)
  +      {
            buf.append(SQLUtil.ASC);
  -      } else {
  +      }
  +      else
  +      {
            buf.append(SQLUtil.DESC);
         }
         return data;
      }
   
  -   public Object visit(ASTPath node, Object data) {
  +   public Object visit(ASTPath node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(node.getPath());
         return data;
      }
   
  -   public Object visit(ASTIdentifier node, Object data) {
  +   public Object visit(ASTIdentifier node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(node.identifier);
         return data;
      }
   
  -   public Object visit(ASTAbstractSchema node, Object data) {
  +   public Object visit(ASTAbstractSchema node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(node.abstractSchemaName);
         return data;
      }
   
  -   public Object visit(ASTParameter node, Object data) {
  +   public Object visit(ASTParameter node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append("?").append(node.number);
         return data;
      }
   
  -   public Object visit(ASTExactNumericLiteral node, Object data) {
  +   public Object visit(ASTExactNumericLiteral node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(node.literal);
         return data;
      }
   
  -   public Object visit(ASTApproximateNumericLiteral node, Object data) {
  +   public Object visit(ASTApproximateNumericLiteral node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(node.literal);
         return data;
      }
   
  -   public Object visit(ASTStringLiteral node, Object data) {
  +   public Object visit(ASTStringLiteral node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(node.value);
         return data;
      }
   
  -   public Object visit(ASTBooleanLiteral node, Object data) {
  +   public Object visit(ASTBooleanLiteral node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         buf.append(node.value);
         return data;
      }
   
  -   public Object visit(ASTLimitOffset node, Object data) {
  +   public Object visit(ASTLimitOffset node, Object data)
  +   {
         StringBuffer buf = (StringBuffer)data;
         int child = 0;
  -      if (node.hasOffset) {
  +      if(node.hasOffset)
  +      {
            buf.append(SQLUtil.OFFSET);
            node.jjtGetChild(child++).jjtAccept(this, data);
         }
  -      if (node.hasLimit) {
  +      if(node.hasLimit)
  +      {
            buf.append(SQLUtil.LIMIT);
            node.jjtGetChild(child++).jjtAccept(this, data);
         }
  
  
  
  1.6.2.6   +21 -1     jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql/JBossQLParser.jjt
  
  Index: JBossQLParser.jjt
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql/JBossQLParser.jjt,v
  retrieving revision 1.6.2.5
  retrieving revision 1.6.2.6
  diff -u -r1.6.2.5 -r1.6.2.6
  --- JBossQLParser.jjt	18 Sep 2003 18:30:27 -0000	1.6.2.5
  +++ JBossQLParser.jjt	30 Sep 2003 13:33:34 -0000	1.6.2.6
  @@ -47,7 +47,7 @@
    *
    * @author <a href="mailto:dain@daingroup.com">Dain Sundstrom</a>
    * @author <a href="mailto:alex@jboss.org">Alex Loubyansky</a>
  - * @version $Revision: 1.6.2.5 $
  + * @version $Revision: 1.6.2.6 $
    */
   public class JBossQLParser {
      private Catalog catalog;
  @@ -649,6 +649,22 @@
      (
         <COUNT> <LPAREN> SingleValuedPath() <RPAREN>
      ) #Count
  +|
  +   (
  +      <MAX> <LPAREN> SingleValuedPath() <RPAREN>
  +   ) #Max
  +|
  +   (
  +      <MIN> <LPAREN> SingleValuedPath() <RPAREN>
  +   ) #Min
  +|
  +   (
  +      <AVG> <LPAREN> SingleValuedPath() <RPAREN>
  +   ) #Avg
  +|
  +   (
  +      <SUM> <LPAREN> SingleValuedPath() <RPAREN>
  +   ) #Sum
   
   ////////////////////////////////////////////////////////////////////////////
   }
  @@ -906,6 +922,10 @@
   |  < BETWEEN: "BETWEEN" >
   |  < CONCAT: "CONCAT" >
   |  < COUNT: "COUNT" >
  +|  < MAX: "MAX" >
  +|  < MIN: "MIN" >
  +|  < AVG: "AVG" >
  +|  < SUM: "SUM" >
   |  < DISTINCT: "DISTINCT" >
   |  < EMPTY: "EMPTY" >
   |  < ESCAPE: "ESCAPE" >
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +46 -0     jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql/Attic/ASTSum.java
  
  
  
  
  1.1.2.1   +46 -0     jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql/Attic/ASTAvg.java
  
  
  
  
  1.1.2.1   +46 -0     jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql/Attic/ASTMax.java
  
  
  
  
  1.1.2.1   +46 -0     jboss/src/main/org/jboss/ejb/plugins/cmp/ejbql/Attic/ASTMin.java
  
  
  
  


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
jboss-cvs-commits mailing list
jboss-cvs-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-cvs-commits
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic