diff options
author | Henrik <henrik.hoiness@online.no> | 2018-08-02 10:18:50 +0200 |
---|---|---|
committer | Henrik <henrik.hoiness@online.no> | 2018-08-02 10:18:50 +0200 |
commit | 8c4383c1b1f0e06ea31a7b0284b57ca9c48f9d3e (patch) | |
tree | 2eef196206ac7c7965206d288ad29b0c2791d8de /container-search/src/main/java/com/yahoo/search/handler | |
parent | 0a5e370b59373d8147e2a8e682bc3296eec0d639 (diff) |
Created new parameter SELECT with subparameters WHERE and GROUPING. Started on a SelectParser which will parse the SELECT parameters to a QueryTree. Also added a new type for queryies 'SELECT', and will now use the SelectParser when getting the QueryTree. Started on testing the same testcases as in YQLParser, looks promising.
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/handler')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java index 3bfaee658f9..d9fa6d8097f 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java +++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java @@ -576,6 +576,18 @@ public class SearchHandler extends LoggingRequestHandler { // Create request-mapping Map<String, String> requestMap = new HashMap<>(); createRequestMapping(inspector, requestMap, ""); + + // Throws QueryException if query contains both yql- and select-parameter + if (requestMap.containsKey("yql") && (requestMap.containsKey("select.where") || requestMap.containsKey("select.grouping")) ) { + throw new QueryException("Illegal query: Query contains both yql- and select-parameter"); + } + + // The query-parameter overrides the select-parameter. Removing them here to prevent further processing of select-parameters. + if (requestMap.containsKey("query")) { + requestMap.remove("select.where"); + requestMap.remove("select.grouping"); + } + return new Query(request, requestMap, queryProfile); @@ -605,6 +617,10 @@ public class SearchHandler extends LoggingRequestHandler { map.put(qualifiedKey, value.asString()); break; case OBJECT: + if (qualifiedKey.equals("select.where") || qualifiedKey.equals("select.grouping")){ + map.put(qualifiedKey, value.toString()); + break; + } createRequestMapping(value, map, qualifiedKey+"."); break; } |