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); + } + } } }
