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/12/03 20:12:32 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/util SqlHelper.java

brj         2003/12/03 11:12:32

  Modified:    src/java/org/apache/ojb/broker/util SqlHelper.java
  Log:
  fixed problem with multi arg functions
  
  Revision  Changes    Path
  1.18      +21 -26    db-ojb/src/java/org/apache/ojb/broker/util/SqlHelper.java
  
  Index: SqlHelper.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/util/SqlHelper.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- SqlHelper.java	28 Nov 2003 14:39:59 -0000	1.17
  +++ SqlHelper.java	3 Dec 2003 19:12:32 -0000	1.18
  @@ -114,10 +114,6 @@
        */
       public static PathInfo splitPath(String aPath)
       {
  -        int braceBegin;
  -        int braceEnd;
  -        int colBegin;
  -        String betweenBraces;
           String prefix = null;
           String suffix = null;
           String colName = aPath;
  @@ -127,32 +123,31 @@
               return new PathInfo(null, null, null);
           }
   
  -        braceBegin = aPath.indexOf("(");
  -        if (braceBegin >= 0)
  +        int braceBegin = aPath.indexOf("(");
  +        int braceEnd = aPath.lastIndexOf(")");
  +
  +        if (braceBegin >= 0 && braceEnd >= 0)
           {
  -            braceEnd = aPath.lastIndexOf(")");
  -            if (braceEnd >= 0)
  -            {
  +                int colBegin;
  +                int colEnd;
  +                String betweenBraces;
  +
                   betweenBraces = aPath.substring(braceBegin + 1, braceEnd).trim();
  +
                   // look for ie 'distinct name'
  -                colBegin = betweenBraces.lastIndexOf(" ");
  -                if (colBegin >= 0)
  -                {
  -                    prefix =
  -                        aPath.substring(0, braceBegin + 1)
  -                            + betweenBraces.substring(0, colBegin + 1);
  -                    colName = betweenBraces.substring(colBegin + 1).trim();
  -                }
  -                else
  -                {
  -                    prefix = aPath.substring(0, braceBegin + 1);
  -                    colName = betweenBraces;
  -                }
  -                suffix = aPath.substring(braceEnd);
  -            }
  +                colBegin = betweenBraces.indexOf(" ");
  +                // look for multiarg fuction like to_char(col,'format_mask')
  +                colEnd = betweenBraces.indexOf(",");               
  +                colEnd = colEnd > 0 ? colEnd : betweenBraces.length();
  +
  +                prefix = aPath.substring(0, braceBegin + 1) +
  +                            betweenBraces.substring(0, colBegin + 1);
  +                colName = betweenBraces.substring(colBegin + 1, colEnd);
  +                suffix = betweenBraces.substring(colEnd) + 
  +                            aPath.substring(braceEnd);
           }
   
  -        return new PathInfo(prefix, colName, suffix);
  +        return new PathInfo(prefix, colName.trim(), suffix);
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org