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]