Skip to content

Commit 630a715

Browse files
Max KsyunzYury-FridlyandGabeFernandez310acarbonetto
authored andcommitted
Support for pagination in v2 engine of SELECT * FROM <table> queries (opensearch-project#1666)
v2 SQL engine can now paginate simple queries. Pagination is initiated by setting fetch_size property in the request JSON. Pagination is implemented using the OpenSearch Scroll API. Please see pagination-v2.md for implementation details. --------- Signed-off-by: MaxKsyunz <[email protected]> Signed-off-by: Yury-Fridlyand <[email protected]> Signed-off-by: Max Ksyunz <[email protected]> Co-authored-by: Yury-Fridlyand <[email protected]> Co-authored-by: GabeFernandez310 <[email protected]> Co-authored-by: Andrew Carbonetto <[email protected]> Signed-off-by: Mitchell Gale <[email protected]>
1 parent 7f70a8f commit 630a715

File tree

3 files changed

+15
-17
lines changed

3 files changed

+15
-17
lines changed

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

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

1616
import java.util.ArrayList;
17-
import java.util.Arrays;
1817
import java.util.Collection;
1918
import java.util.List;
2019
import java.util.Map;
@@ -281,6 +280,10 @@ private List<NestedQueryBuilder> extractNestedQueries(QueryBuilder query) {
281280
return result;
282281
}
283282

283+
public int getMaxResponseSize() {
284+
return pageSize == null ? requestedTotalSize : pageSize;
285+
}
286+
284287
/**
285288
* Initialize bool query for push down.
286289
*/

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,15 @@
1414
import java.util.Map;
1515
import java.util.function.BiFunction;
1616
import lombok.RequiredArgsConstructor;
17-
import org.apache.lucene.search.join.ScoreMode;
1817
import org.opensearch.index.query.BoolQueryBuilder;
1918
import org.opensearch.index.query.QueryBuilder;
2019
import org.opensearch.index.query.QueryBuilders;
2120
import org.opensearch.index.query.ScriptQueryBuilder;
2221
import org.opensearch.script.Script;
23-
import org.opensearch.sql.ast.expression.Function;
2422
import org.opensearch.sql.common.antlr.SyntaxCheckException;
2523
import org.opensearch.sql.expression.Expression;
2624
import org.opensearch.sql.expression.ExpressionNodeVisitor;
2725
import org.opensearch.sql.expression.FunctionExpression;
28-
import org.opensearch.sql.expression.ReferenceExpression;
2926
import org.opensearch.sql.expression.function.BuiltinFunctionName;
3027
import org.opensearch.sql.expression.function.FunctionName;
3128
import org.opensearch.sql.opensearch.storage.script.filter.lucene.LikeQuery;

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

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

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());
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);
399397
}
400398

401399
@Test
402-
void testPushTypeMapping() {
400+
void test_push_type_mapping() {
403401
Map<String, OpenSearchDataType> typeMapping = Map.of("intA", OpenSearchDataType.of(INTEGER));
404402
requestBuilder.pushTypeMapping(typeMapping);
405403

0 commit comments

Comments
 (0)