Merge remote-tracking branch 'jhorcicka/bug/dc-2199-schema-equals-column'
diff --git a/CHANGES.md b/CHANGES.md
index 3abb8f0..08715a0 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,9 @@
+### Apache MetaModel [WIP]
+
+ * [METAMODEL-1236] - Elasticsearch: not/empty and is/not null do not work for text based columns
+ * [METAMODEL-1235] - Elasticsearch: "String index out of range" when schema name and column name are equal
+ * [METAMODEL-1232] - Improve stability of Travis CI builds
+
### Apache MetaModel 5.3.3
* [METAMODEL-1233] - Elasticsearch: "term" query is used for text search.
diff --git a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
index 87a3035..4a2984f 100644
--- a/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
+++ b/core/src/main/java/org/apache/metamodel/AbstractDataContext.java
@@ -307,26 +307,24 @@
* in case of case-insensitive search)
* @return
*/
- private Column searchColumn(String schemaNameSearch, String columnNameOriginal, String columnNameSearch) {
- if (columnNameSearch.startsWith(schemaNameSearch)) {
- Schema schema = getSchemaByName(schemaNameSearch);
- if (schema != null) {
+ private Column searchColumn(final String schemaNameSearch, final String columnNameOriginal,
+ final String columnNameSearch) {
+ final Schema schema = getSchemaByName(schemaNameSearch);
+ if (schema != null) {
+ if (columnNameSearch.equals(schemaNameSearch)) {
+ return getColumn(schema, columnNameSearch);
+ } else if (columnNameSearch.startsWith(schemaNameSearch)) {
String tableAndColumnPath = columnNameOriginal.substring(schemaNameSearch.length());
-
if (tableAndColumnPath.charAt(0) == '.') {
tableAndColumnPath = tableAndColumnPath.substring(1);
-
- Column column = getColumn(schema, tableAndColumnPath);
- if (column != null) {
- return column;
- }
+ return getColumn(schema, tableAndColumnPath);
}
}
}
return null;
}
- private final Column getColumn(final Schema schema, final String tableAndColumnPath) {
+ private Column getColumn(final Schema schema, final String tableAndColumnPath) {
Table table = null;
String columnPath = tableAndColumnPath;
final List<String> tableNames = schema.getTableNames();