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();
 

Reply via email to