Mercurial > hg > monetdb-java
diff src/main/java/org/monetdb/jdbc/MonetWrapper.java @ 965:8aaa9964359a
Fix missing escaping of single back slashes in string data provided to
PreparedStatement methods setString(), setClob(), setObject() and setURL().
Also corrected and extended test Test_PSsetBytes.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Wed, 12 Feb 2025 21:53:06 +0100 (2 months ago) |
parents | d416e9b6b3d0 |
children |
line wrap: on
line diff
--- a/src/main/java/org/monetdb/jdbc/MonetWrapper.java +++ b/src/main/java/org/monetdb/jdbc/MonetWrapper.java @@ -108,11 +108,11 @@ public class MonetWrapper implements jav */ public static final String dq(final String in) { String ret = in; - if (ret.contains("\\\\")) - // all double slashes in input need to be escaped. + if (ret.indexOf('\\') >= 0) + // every back slash in input needs to be escaped. ret = ret.replaceAll("\\\\", "\\\\\\\\"); - if (ret.contains("\"")) - // all double quotes in input need to be escaped. + if (ret.indexOf('"') >= 0) + // every double quote in input needs to be escaped. ret = ret.replaceAll("\"", "\\\\\""); return "\"" + ret + "\""; } @@ -128,11 +128,11 @@ public class MonetWrapper implements jav */ public static final String sq(final String in) { String ret = in; - if (ret.contains("\\\\")) - // all double slashes in input need to be escaped. + if (ret.indexOf('\\') >= 0) + // every back slash in input needs to be escaped. ret = ret.replaceAll("\\\\", "\\\\\\\\"); - if (ret.contains("'")) - // all single quotes in input need to be escaped. + if (ret.indexOf('\'') >= 0) + // every single quote in input needs to be escaped. ret = ret.replaceAll("'", "\\\\'"); return "'" + ret + "'"; }