diff options
author | James Ahlborn <jtahlborn@yahoo.com> | 2014-12-03 03:23:51 +0000 |
---|---|---|
committer | James Ahlborn <jtahlborn@yahoo.com> | 2014-12-03 03:23:51 +0000 |
commit | e6e0208c973f6a67e8d4593aa665133a6d7e7f03 (patch) | |
tree | 0fee89be03d985438bb487d62cdbdcdf8d32faa4 | |
parent | 2e461c270a6a51603f095ed33d12dcf6ee6558b1 (diff) | |
download | jackcess-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.xml | 6 | ||||
-rw-r--r-- | src/changes/changes.xml | 3 | ||||
-rw-r--r-- | src/main/java/com/healthmarketscience/jackcess/impl/query/QueryImpl.java | 9 | ||||
-rw-r--r-- | src/test/java/com/healthmarketscience/jackcess/query/QueryTest.java | 2 |
4 files changed, 18 insertions, 2 deletions
@@ -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( |