aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Ahlborn <jtahlborn@yahoo.com>2014-12-03 03:23:51 +0000
committerJames Ahlborn <jtahlborn@yahoo.com>2014-12-03 03:23:51 +0000
commite6e0208c973f6a67e8d4593aa665133a6d7e7f03 (patch)
tree0fee89be03d985438bb487d62cdbdcdf8d32faa4
parent2e461c270a6a51603f095ed33d12dcf6ee6558b1 (diff)
downloadjackcess-e6e0208c973f6a67e8d4593aa665133a6d7e7f03.tar.gz
jackcess-e6e0208c973f6a67e8d4593aa665133a6d7e7f03.zip
Don't double quote already quoted identifiers. fixes patch 18
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@901 f203690c-595d-4dc9-a70b-905162fa7fd2
-rw-r--r--pom.xml6
-rw-r--r--src/changes/changes.xml3
-rw-r--r--src/main/java/com/healthmarketscience/jackcess/impl/query/QueryImpl.java9
-rw-r--r--src/test/java/com/healthmarketscience/jackcess/query/QueryTest.java2
4 files changed, 18 insertions, 2 deletions
diff --git a/pom.xml b/pom.xml
index 3d83e23..3903c71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,6 +94,12 @@
<role>Contributed to cookbook.</role>
</roles>
</contributor>
+ <contributor>
+ <name>Gabriele Favalessa</name>
+ <roles>
+ <role>Fixed various query generation issues.</role>
+ </roles>
+ </contributor>
</contributors>
<issueManagement>
<system>SourceForge2</system>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 721e923..5137378 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -11,6 +11,9 @@
<action dev="jahlborn" type="fix" system="SourceForge2Patches" issue="17">
Fix table name quoting for append and make table queries.
</action>
+ <action dev="jahlborn" type="fix" system="SourceForge2Patches" issue="18">
+ Don't double quote already quoted identifiers.
+ </action>
</release>
<release version="2.0.7" date="2014-11-22">
<action dev="jahlborn" type="fix" system="SourceForge2" issue="111">
diff --git a/src/main/java/com/healthmarketscience/jackcess/impl/query/QueryImpl.java b/src/main/java/com/healthmarketscience/jackcess/impl/query/QueryImpl.java
index 90032eb..a695032 100644
--- a/src/main/java/com/healthmarketscience/jackcess/impl/query/QueryImpl.java
+++ b/src/main/java/com/healthmarketscience/jackcess/impl/query/QueryImpl.java
@@ -510,7 +510,14 @@ public abstract class QueryImpl implements Query
protected static StringBuilder toQuotedExpr(StringBuilder builder,
String expr)
{
- return builder.append('[').append(expr).append(']');
+ return (!isQuoted(expr) ?
+ builder.append('[').append(expr).append(']') :
+ builder.append(expr));
+ }
+
+ protected static boolean isQuoted(String expr) {
+ return ((expr.length() >= 2) &&
+ (expr.charAt(0) == '[') && (expr.charAt(expr.length() - 1) == ']'));
}
protected static StringBuilder toRemoteDb(StringBuilder builder,
diff --git a/src/test/java/com/healthmarketscience/jackcess/query/QueryTest.java b/src/test/java/com/healthmarketscience/jackcess/query/QueryTest.java
index ade3ec1..65741cc 100644
--- a/src/test/java/com/healthmarketscience/jackcess/query/QueryTest.java
+++ b/src/test/java/com/healthmarketscience/jackcess/query/QueryTest.java
@@ -224,7 +224,7 @@ public class QueryTest extends TestCase
"UpdateQuery",multiline(
"PARAMETERS User Name Text;",
"UPDATE Table1",
- "SET Table1.col1 = \"foo\", Table1.col2 = [Table2].[col3], [[Table2]].[[col1]] = [User Name]",
+ "SET Table1.col1 = \"foo\", Table1.col2 = [Table2].[col3], [Table2].[col1] = [User Name]",
"WHERE ((([Table2].[col1]) Is Not Null));"));
expectedQueries.put(
"MakeTableQuery",multiline(