METAMODEL-79: Fixed issues raised by Dennis Du Krøger on review board. Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/ef234d0c Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/ef234d0c Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/ef234d0c
Branch: refs/heads/master Commit: ef234d0ce0f944a0111f3ddcfcbd23fb669c2e98 Parents: e49634e Author: Kasper Sørensen <[email protected]> Authored: Mon Mar 9 20:50:02 2015 +0100 Committer: Kasper Sørensen <[email protected]> Committed: Mon Mar 9 20:50:02 2015 +0100 ---------------------------------------------------------------------- .../ElasticSearchCreateTableBuilder.java | 8 +++--- .../ElasticSearchDeleteBuilder.java | 28 +++++++++----------- 2 files changed, 16 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/ef234d0c/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchCreateTableBuilder.java ---------------------------------------------------------------------- diff --git a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchCreateTableBuilder.java b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchCreateTableBuilder.java index c23fc88..e550506 100644 --- a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchCreateTableBuilder.java +++ b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchCreateTableBuilder.java @@ -111,7 +111,8 @@ final class ElasticSearchCreateTableBuilder extends AbstractTableCreationBuilder final ColumnType type = column.getType(); if (type == null) { - return "object"; + throw new IllegalStateException("No column type specified for '" + column.getName() + + "' - cannot build ElasticSearch mapping without type."); } if (type.isLiteral()) { @@ -136,8 +137,7 @@ final class ElasticSearchCreateTableBuilder extends AbstractTableCreationBuilder return "object"; } - logger.warn("Unhandled column type {} - the column '{}' will not have any type defined", type, column.getName()); - - return "object"; + throw new UnsupportedOperationException("Unsupported column type '" + type.getName() + "' of column '" + + column.getName() + "' - cannot translate to an ElasticSearch type."); } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/ef234d0c/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDeleteBuilder.java ---------------------------------------------------------------------- diff --git a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDeleteBuilder.java b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDeleteBuilder.java index 05d1f15..3aae761 100644 --- a/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDeleteBuilder.java +++ b/elasticsearch/src/main/java/org/apache/metamodel/elasticsearch/ElasticSearchDeleteBuilder.java @@ -32,7 +32,6 @@ import org.elasticsearch.action.deletebyquery.DeleteByQueryResponse; import org.elasticsearch.action.deletebyquery.IndexDeleteByQueryResponse; import org.elasticsearch.client.Client; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryBuilders; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,22 +64,19 @@ final class ElasticSearchDeleteBuilder extends AbstractRowDeletionBuilder { deleteByQueryRequestBuilder.setTypes(documentType); final List<FilterItem> whereItems = getWhereItems(); - if (whereItems.isEmpty()) { - // truncate the index - deleteByQueryRequestBuilder.setQuery(QueryBuilders.matchAllQuery()); - } else { - // delete by query - final QueryBuilder queryBuilder = dataContext.createQueryBuilderForSimpleWhere(table, whereItems, - LogicalOperator.AND); - if (queryBuilder == null) { - // TODO: The where items could not be pushed down to a query. We - // could solve this by running a query first, gather all - // document IDs and then delete by IDs. - throw new UnsupportedOperationException("Could not push down WHERE items to delete by query request: " - + whereItems); - } - deleteByQueryRequestBuilder.setQuery(queryBuilder); + + // delete by query - note that creteQueryBuilderForSimpleWhere may + // return matchAllQuery() if no where items are present. + final QueryBuilder queryBuilder = dataContext.createQueryBuilderForSimpleWhere(table, whereItems, + LogicalOperator.AND); + if (queryBuilder == null) { + // TODO: The where items could not be pushed down to a query. We + // could solve this by running a query first, gather all + // document IDs and then delete by IDs. + throw new UnsupportedOperationException("Could not push down WHERE items to delete by query request: " + + whereItems); } + deleteByQueryRequestBuilder.setQuery(queryBuilder); final DeleteByQueryResponse response = deleteByQueryRequestBuilder.execute().actionGet();
