jvanzyl     01/05/30 14:13:01

  Modified:    src/java/org/apache/turbine/util/db SqlExpression.java
               src/java/org/apache/turbine/util/db/adapter DB.java
                        DBSapDB.java
  Log:
  - committing patches by david polito, tested against the tdk
    everything and everything is cool.
  
  Revision  Changes    Path
  1.20      +25 -4     
jakarta-turbine/src/java/org/apache/turbine/util/db/SqlExpression.java
  
  Index: SqlExpression.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine/src/java/org/apache/turbine/util/db/SqlExpression.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- SqlExpression.java        2001/05/06 17:06:41     1.19
  +++ SqlExpression.java        2001/05/30 21:12:56     1.20
  @@ -79,7 +79,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>John D. McNally</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Daniel Rall</a>
  - * @version $Id: SqlExpression.java,v 1.19 2001/05/06 17:06:41 jvanzyl Exp $
  + * @version $Id: SqlExpression.java,v 1.20 2001/05/30 21:12:56 jvanzyl Exp $
    */
   public class SqlExpression
   {
  @@ -287,7 +287,7 @@
                  criteria instanceof StringKey ||
                  criteria instanceof DateKey)
              {
  -               criteria = quoteAndEscapeText(criteria.toString());
  +               criteria = quoteAndEscapeText(criteria.toString(), db);
              }
              else if( criteria instanceof Boolean )
              {
  @@ -550,7 +550,7 @@
           String ret = null;
           if (value instanceof String)
           {
  -            ret = quoteAndEscapeText((String)value);
  +            ret = quoteAndEscapeText((String)value, db);
           }
           else
           {
  @@ -571,10 +571,21 @@
        * @param rawText The <i>unquoted</i>, <i>unescaped</i> text to process.
        * @return Quoted and escaped text.
        */
  -    public static String quoteAndEscapeText(String rawText)
  +    public static String quoteAndEscapeText(String rawText, DB db)
       {
           StringBuffer buf = new StringBuffer( (int)(rawText.length() * 1.1) );
   
  +        /* Some databases do not need escaping.  */
  +        String escapeString = new String();
  +        if (db != null && db.escapeText() == false)
  +        {
  +            escapeString = String.valueOf(BACKSLASH);
  +        }
  +        else
  +        {
  +            escapeString = String.valueOf(BACKSLASH) + String.valueOf(BACKSLASH);
  +        }
  +
           char[] data = rawText.toCharArray();
           buf.append(SINGLE_QUOTE);
           for (int i = 0; i < data.length; i++)
  @@ -594,5 +605,15 @@
           buf.append(SINGLE_QUOTE);
   
           return buf.toString();
  +    }
  +
  +    /**
  +     *
  +     * @deprecated Use quoteAndEscapeText(String rawText, DB db) instead.
  +     * the quoteAndEscapeText rules depend on the database.
  +     */
  +    public static String quoteAndEscapeText(String rawText)
  +    {
  +        return quoteAndEscapeText(rawText, null);
       }
   }
  
  
  
  1.6       +14 -1     
jakarta-turbine/src/java/org/apache/turbine/util/db/adapter/DB.java
  
  Index: DB.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine/src/java/org/apache/turbine/util/db/adapter/DB.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DB.java   2001/05/06 17:06:42     1.5
  +++ DB.java   2001/05/30 21:12:59     1.6
  @@ -99,7 +99,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Jon S. Stevens</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Brett McLaughlin</a>
  - * @version $Id: DB.java,v 1.5 2001/05/06 17:06:42 jvanzyl Exp $
  + * @version $Id: DB.java,v 1.6 2001/05/30 21:12:59 jvanzyl Exp $
    */
   public abstract class DB
   {
  @@ -347,6 +347,19 @@
       public boolean supportsNativeOffset()
       {
           return false;
  +    }
  +
  +   /**
  +    * This method is for the SqlExpression.quoteAndEscape rules.  The rule is,
  +    * any string in a SqlExpression with a BACKSLASH will either be changed to
  +    * "\\" or left as "\".  SapDB does not need the escape character.
  +    *
  +    * @return true if the database needs to escape text in SqlExpressions.
  +    */
  +    
  +    public boolean escapeText()
  +    {
  +        return true;
       }
   
       /**
  
  
  
  1.2       +14 -1     
jakarta-turbine/src/java/org/apache/turbine/util/db/adapter/DBSapDB.java
  
  Index: DBSapDB.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine/src/java/org/apache/turbine/util/db/adapter/DBSapDB.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DBSapDB.java      2001/05/27 02:41:30     1.1
  +++ DBSapDB.java      2001/05/30 21:13:00     1.2
  @@ -67,7 +67,7 @@
    * <a href="http://www.sapdb.org";>http://www.sapdb.org</a>
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Dave Polito</a>
  - * @version $Id: DBSapDB.java,v 1.1 2001/05/27 02:41:30 jvanzyl Exp $
  + * @version $Id: DBSapDB.java,v 1.2 2001/05/30 21:13:00 jvanzyl Exp $
    */
   public class DBSapDB
       extends DB
  @@ -164,6 +164,19 @@
           .append( " FOR UPDATE" );
   
           statement.executeQuery( stmt.toString() );
  +    }
  +
  +   /**
  +    * This method is for the SqlExpression.quoteAndEscape rules.  The rule is,
  +    * any string in a SqlExpression with a BACKSLASH will either be changed to
  +    * "\\" or left as "\".  SapDB does not need the escape character.
  +    *
  +    * @return false.
  +    */
  +    
  +    public boolean escapeText()
  +    {
  +        return false;
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to