METAMODEL-1106: Fixed bug when JDBC column is named like 'index'. Closes #117
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/23925579 Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/23925579 Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/23925579 Branch: refs/heads/5.x Commit: 2392557953c0b2473d702852efc14a20a50f195d Parents: f35bfed Author: kaspersorensen <i.am.kasper.soren...@gmail.com> Authored: Fri Jul 29 08:40:49 2016 -0700 Committer: kaspersorensen <i.am.kasper.soren...@gmail.com> Committed: Fri Jul 29 08:40:49 2016 -0700 ---------------------------------------------------------------------- CHANGES.md | 1 + .../org/apache/metamodel/jdbc/SqlKeywords.java | 62 ++++++++++++-------- 2 files changed, 40 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/23925579/CHANGES.md ---------------------------------------------------------------------- diff --git a/CHANGES.md b/CHANGES.md index bd2cec8..f0264c6 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,6 +7,7 @@ * [METAMODEL-1086] - Fixed encoding issue when CsvDataContext is instantiated with InputStream. * [METAMODEL-1094]Â - Added support for Apache Cassandra version 3.x. * [METAMODEL-1093] - Close compiled ResultSets. + * [METAMODEL-1106] - Fixed bug in JDBC adaptor caused by not quoting columns named as a keyword, e.g. 'index'. * [METAMODEL-1102] - Separated FixedWidthLineParser. * [METAMODEL-1107] - Added support for PostgreSQL's "json" and "jsonb" data types. http://git-wip-us.apache.org/repos/asf/metamodel/blob/23925579/jdbc/src/main/java/org/apache/metamodel/jdbc/SqlKeywords.java ---------------------------------------------------------------------- diff --git a/jdbc/src/main/java/org/apache/metamodel/jdbc/SqlKeywords.java b/jdbc/src/main/java/org/apache/metamodel/jdbc/SqlKeywords.java index b2207df..7ffb6c9 100644 --- a/jdbc/src/main/java/org/apache/metamodel/jdbc/SqlKeywords.java +++ b/jdbc/src/main/java/org/apache/metamodel/jdbc/SqlKeywords.java @@ -23,29 +23,45 @@ import java.util.Set; class SqlKeywords { - private static final Set<String> KEYWORDS; + private static final Set<String> KEYWORDS; - static { - KEYWORDS = new HashSet<String>(); - KEYWORDS.add("SELECT"); - KEYWORDS.add("DISTINCT"); - KEYWORDS.add("AS"); - KEYWORDS.add("COUNT"); - KEYWORDS.add("SUM"); - KEYWORDS.add("MIN"); - KEYWORDS.add("MAX"); - KEYWORDS.add("FROM"); - KEYWORDS.add("WHERE"); - KEYWORDS.add("LIKE"); - KEYWORDS.add("IN"); - KEYWORDS.add("GROUP"); - KEYWORDS.add("BY"); - KEYWORDS.add("HAVING"); - KEYWORDS.add("ORDER"); - } + static { + KEYWORDS = new HashSet<String>(); + KEYWORDS.add("SELECT"); + KEYWORDS.add("DISTINCT"); + KEYWORDS.add("AS"); + KEYWORDS.add("COUNT"); + KEYWORDS.add("SUM"); + KEYWORDS.add("MIN"); + KEYWORDS.add("MAX"); + KEYWORDS.add("FROM"); + KEYWORDS.add("WHERE"); + KEYWORDS.add("LIKE"); + KEYWORDS.add("IN"); + KEYWORDS.add("GROUP"); + KEYWORDS.add("BY"); + KEYWORDS.add("HAVING"); + KEYWORDS.add("ORDER"); + KEYWORDS.add("INDEX"); + KEYWORDS.add("PRIMARY"); + KEYWORDS.add("KEY"); + KEYWORDS.add("CONSTRAINT"); + KEYWORDS.add("UNIQUE"); + KEYWORDS.add("IS"); + KEYWORDS.add("NOT"); + KEYWORDS.add("NULL"); + KEYWORDS.add("CREATE"); + KEYWORDS.add("INSERT"); + KEYWORDS.add("INTO"); + KEYWORDS.add("UPDATE"); + KEYWORDS.add("VALUES"); + KEYWORDS.add("DELETE"); + KEYWORDS.add("AND"); + KEYWORDS.add("OR"); + } - public static boolean isKeyword(String str) { - str = str.toUpperCase(); - return KEYWORDS.contains(str); - } + public static boolean isKeyword(String str) { + str = str.toUpperCase(); + return KEYWORDS.contains(str); + } }