Skip to content

Commit 7f70a8f

Browse files
forestmveyMitchellGale
authored andcommitted
Add Support for Nested Function Use In WHERE Clause Predicate Expresion (opensearch-project#1657)
* Adding support for nested function used in predicate expression. Signed-off-by: forestmvey <[email protected]> * Add support for LIKE with nested query in predicate expression. Signed-off-by: forestmvey <[email protected]> --------- Signed-off-by: forestmvey <[email protected]>
1 parent 7613adb commit 7f70a8f

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

opensearch/src/main/java/org/opensearch/sql/opensearch/request/OpenSearchRequestBuilder.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import static org.opensearch.search.sort.SortOrder.ASC;
1515

1616
import java.util.ArrayList;
17+
import java.util.Arrays;
1718
import java.util.Collection;
1819
import java.util.List;
1920
import java.util.Map;
@@ -280,10 +281,6 @@ private List<NestedQueryBuilder> extractNestedQueries(QueryBuilder query) {
280281
return result;
281282
}
282283

283-
public int getMaxResponseSize() {
284-
return pageSize == null ? requestedTotalSize : pageSize;
285-
}
286-
287284
/**
288285
* Initialize bool query for push down.
289286
*/

opensearch/src/main/java/org/opensearch/sql/opensearch/storage/script/filter/FilterQueryBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,18 @@
1414
import java.util.Map;
1515
import java.util.function.BiFunction;
1616
import lombok.RequiredArgsConstructor;
17+
import org.apache.lucene.search.join.ScoreMode;
1718
import org.opensearch.index.query.BoolQueryBuilder;
1819
import org.opensearch.index.query.QueryBuilder;
1920
import org.opensearch.index.query.QueryBuilders;
2021
import org.opensearch.index.query.ScriptQueryBuilder;
2122
import org.opensearch.script.Script;
23+
import org.opensearch.sql.ast.expression.Function;
2224
import org.opensearch.sql.common.antlr.SyntaxCheckException;
2325
import org.opensearch.sql.expression.Expression;
2426
import org.opensearch.sql.expression.ExpressionNodeVisitor;
2527
import org.opensearch.sql.expression.FunctionExpression;
28+
import org.opensearch.sql.expression.ReferenceExpression;
2629
import org.opensearch.sql.expression.function.BuiltinFunctionName;
2730
import org.opensearch.sql.expression.function.FunctionName;
2831
import org.opensearch.sql.opensearch.storage.script.filter.lucene.LikeQuery;

opensearch/src/test/java/org/opensearch/sql/opensearch/request/OpenSearchRequestBuilderTest.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -384,20 +384,22 @@ void testPushDownNestedWithNestedFilter() {
384384
.innerHit(new InnerHitBuilder().setFetchSourceContext(
385385
new FetchSourceContext(true, new String[]{"message.info"}, null)));
386386

387-
assertSearchSourceBuilder(new SearchSourceBuilder()
388-
.query(
389-
QueryBuilders.boolQuery().filter(
390-
QueryBuilders.boolQuery()
391-
.must(filterQuery)
392-
)
393-
)
394-
.from(DEFAULT_OFFSET)
395-
.size(DEFAULT_LIMIT)
396-
.timeout(DEFAULT_QUERY_TIMEOUT), requestBuilder);
387+
assertEquals(
388+
new SearchSourceBuilder()
389+
.query(
390+
QueryBuilders.boolQuery().filter(
391+
QueryBuilders.boolQuery()
392+
.must(filterQuery)
393+
)
394+
)
395+
.from(DEFAULT_OFFSET)
396+
.size(DEFAULT_LIMIT)
397+
.timeout(DEFAULT_QUERY_TIMEOUT),
398+
requestBuilder.getSourceBuilder());
397399
}
398400

399401
@Test
400-
void test_push_type_mapping() {
402+
void testPushTypeMapping() {
401403
Map<String, OpenSearchDataType> typeMapping = Map.of("intA", OpenSearchDataType.of(INTEGER));
402404
requestBuilder.pushTypeMapping(typeMapping);
403405

0 commit comments

Comments
 (0)