You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2003/01/02 10:37:58 UTC

cvs commit: jakarta-ojb/src/java/org/apache/ojb/broker/accesslayer/sql SqlQueryStatement.java

brj         2003/01/02 01:37:58

  Modified:    src/java/org/apache/ojb/broker/accesslayer/sql
                        SqlQueryStatement.java
  Log:
  support columns like "count(distinct x)"
  
  Revision  Changes    Path
  1.16      +13 -4     jakarta-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java
  
  Index: SqlQueryStatement.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/broker/accesslayer/sql/SqlQueryStatement.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- SqlQueryStatement.java	24 Dec 2002 12:57:51 -0000	1.15
  +++ SqlQueryStatement.java	2 Jan 2003 09:37:58 -0000	1.16
  @@ -147,17 +147,27 @@
           FieldDescriptor fld = null;
           int braceBegin;
           int braceEnd;
  +        int colBegin;
           String functionName;
           String colName;
           int sp;
           TableAlias alias = null;
   
  +        // BRJ : look for functions ie: count(x) or count(distinct x)
           braceBegin = attr.indexOf("(");
           braceEnd = attr.indexOf(")");
           if (braceBegin >= 0 && braceEnd >= 0)
           {
  -            functionName = attr.substring(0, braceBegin);
  -            colName = attr.substring(braceBegin + 1, braceEnd).trim();
  +            // BRJ : look for count(distinct x)
  +            colBegin = attr.indexOf(" ", braceBegin); 
  +            if (colBegin < 0)
  +            {
  +                colBegin = braceBegin;
  +            }
  +
  +            // BRJ : functionName includes starting brace
  +            functionName = attr.substring(0, colBegin + 1);  
  +            colName = attr.substring(colBegin + 1, braceEnd).trim();
           }
           else
           {
  @@ -227,7 +237,6 @@
           if (functionName != null) // rebuild function
           {
               buf.append(functionName);
  -            buf.append("(");
           }
   
           if (fld != null)