diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/query/parser')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java | 17 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java b/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java index e5941a90b83..64fb201fe21 100644 --- a/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java +++ b/container-search/src/main/java/com/yahoo/search/query/parser/Parsable.java @@ -3,6 +3,7 @@ package com.yahoo.search.query.parser; import com.yahoo.language.Language; import com.yahoo.search.query.Model; +import com.yahoo.search.query.Select; import java.util.Collection; import java.util.HashSet; @@ -36,6 +37,7 @@ public final class Parsable { private String defaultIndexName; private Language language; // TODO: Initialize to UNKNOWN private Optional<Language> explicitLanguage = Optional.empty(); + private Select select; /** If this is set it will be used to determine the language, if not set explicitly */ private Optional<Model> model = Optional.empty(); @@ -133,6 +135,15 @@ public final class Parsable { return this; } + public Parsable setSelect(Select select){ + this.select = select; + return this; + } + + public Select getSelect(){ + return this.select; + } + public static Parsable fromQueryModel(Model model) { return new Parsable() .setModel(model) @@ -141,7 +152,11 @@ public final class Parsable { .setExplicitLanguage(Optional.ofNullable(model.getLanguage())) .setDefaultIndexName(model.getDefaultIndex()) .addSources(model.getSources()) - .addRestricts(model.getRestrict()); + .addRestricts(model.getRestrict()) + .setSelect(model.getParent().getSelect()); } + + + } diff --git a/container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java b/container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java index 8d008abaac2..69d46527255 100644 --- a/container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java +++ b/container-search/src/main/java/com/yahoo/search/query/parser/ParserFactory.java @@ -3,6 +3,7 @@ package com.yahoo.search.query.parser; import com.yahoo.prelude.query.parser.*; import com.yahoo.search.Query; +import com.yahoo.search.query.SelectParser; import com.yahoo.search.yql.YqlParser; /** @@ -40,6 +41,8 @@ public final class ParserFactory { return new ProgrammaticParser(); case YQL: return new YqlParser(environment); + case SELECT: + return new SelectParser(environment); default: throw new UnsupportedOperationException(type.toString()); } |