Prevent sorting during a rowquery.

Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/64da3a8f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/64da3a8f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/64da3a8f

Branch: refs/heads/apache-blur-0.2
Commit: 64da3a8f3b76ca707ce4fd8933e0b699c5925765
Parents: c211086
Author: Aaron McCurry <[email protected]>
Authored: Mon Feb 3 14:51:21 2014 -0500
Committer: Aaron McCurry <[email protected]>
Committed: Mon Feb 3 14:51:21 2014 -0500

----------------------------------------------------------------------
 .../org/apache/blur/manager/BlurQueryChecker.java    | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/64da3a8f/blur-core/src/main/java/org/apache/blur/manager/BlurQueryChecker.java
----------------------------------------------------------------------
diff --git 
a/blur-core/src/main/java/org/apache/blur/manager/BlurQueryChecker.java 
b/blur-core/src/main/java/org/apache/blur/manager/BlurQueryChecker.java
index f2fbd0d..0144b64 100644
--- a/blur-core/src/main/java/org/apache/blur/manager/BlurQueryChecker.java
+++ b/blur-core/src/main/java/org/apache/blur/manager/BlurQueryChecker.java
@@ -20,6 +20,8 @@ import static 
org.apache.blur.utils.BlurConstants.BLUR_QUERY_MAX_RECORD_FETCH;
 import static org.apache.blur.utils.BlurConstants.BLUR_QUERY_MAX_RESULTS_FETCH;
 import static org.apache.blur.utils.BlurConstants.BLUR_QUERY_MAX_ROW_FETCH;
 
+import java.util.List;
+
 import org.apache.blur.BlurConfiguration;
 import org.apache.blur.log.Log;
 import org.apache.blur.log.LogFactory;
@@ -28,6 +30,7 @@ import org.apache.blur.thrift.generated.BlurException;
 import org.apache.blur.thrift.generated.BlurQuery;
 import org.apache.blur.thrift.generated.Query;
 import org.apache.blur.thrift.generated.Selector;
+import org.apache.blur.thrift.generated.SortField;
 import org.apache.blur.utils.BlurConstants;
 
 /**
@@ -61,7 +64,7 @@ public class BlurQueryChecker {
    * 
    * @param blurQuery
    *          the {@link BlurQuery} to validate.
-   * @throws BlurException 
+   * @throws BlurException
    */
   public void checkQuery(BlurQuery blurQuery) throws BlurException {
     if (blurQuery.selector != null) {
@@ -90,13 +93,21 @@ public class BlurQueryChecker {
           blurQuery.fetch, blurQuery.minimumNumberOfResults);
       blurQuery.fetch = (int) blurQuery.minimumNumberOfResults;
     }
+    Query query = blurQuery.getQuery();
     if (blurQuery.getRowId() != null) {
-      Query query = blurQuery.getQuery();
       if (query.isRowQuery()) {
         throw new BException("Query [{0}] in BlurQuery [{1}] cannot be a 
rowquery when rowId is supplied.", query,
             blurQuery);
       }
     }
+    List<SortField> sortFields = blurQuery.getSortFields();
+    if (sortFields != null && !sortFields.isEmpty()) {
+      boolean rowQuery = query.isRowQuery();
+      if (rowQuery) {
+        throw new BException("Query [{0}] in BlurQuery [{1}] cannot be a 
rowquery when sortfields are supplied.",
+            query, blurQuery);
+      }
+    }
   }
 
 }

Reply via email to