Skip to content

[Feature] Reject aggregations on vectorSearch() relations#5362

Merged
mengweieric merged 2 commits intoopensearch-project:feature/vector-search-p0from
mengweieric:pr/A-reject-groupby
Apr 17, 2026
Merged

[Feature] Reject aggregations on vectorSearch() relations#5362
mengweieric merged 2 commits intoopensearch-project:feature/vector-search-p0from
mengweieric:pr/A-reject-groupby

Conversation

@mengweieric
Copy link
Copy Markdown
Collaborator

@mengweieric mengweieric commented Apr 17, 2026

Summary

Reject aggregations (including GROUP BY and bare aggregate functions like COUNT(*)) on vectorSearch() relations in the SQL preview. This is a SQL-surface constraint, not a native OpenSearch limitation — the k-NN plugin does support aggregations alongside similarity search. The restriction keeps the preview contract narrow and can be lifted in a later release.

Changes

  • New VectorSearchIndexScanBuilder overrides pushDownAggregation to throw ExpressionEvaluationException.
  • VectorSearchIndex.createScanBuilder returns the new builder.
  • Unit test covers the rejection path at the scan-builder level.
  • Two new VectorSearchIT tests assert rejection end-to-end: GROUP BY and bare COUNT(*).

Test plan

  • ./gradlew :opensearch:test --tests '*VectorSearchIndexScanBuilderTest' passes
  • ./gradlew :integ-test:compileTestJava passes
  • ./gradlew :opensearch:spotlessCheck :integ-test:spotlessCheck passes

Signed-off-by: Eric Wei <mengwei.eric@gmail.com>
@mengweieric mengweieric added SQL feature skip-diff-analyzer Maintainer to skip code-diff-analyzer check, after reviewing issues in AI analysis. skip-diff-reviewer Maintainer to skip code-diff-reviewer check, after reviewing issues in AI analysis. labels Apr 17, 2026
…are-aggregate ITs; drop subquery workaround text

Signed-off-by: Eric Wei <mengwei.eric@gmail.com>
@mengweieric mengweieric changed the title [Feature] Reject GROUP BY on vectorSearch() relations [Feature] Reject aggregations on vectorSearch() relations Apr 17, 2026
@mengweieric mengweieric merged commit af47e26 into opensearch-project:feature/vector-search-p0 Apr 17, 2026
37 of 38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature skip-diff-analyzer Maintainer to skip code-diff-analyzer check, after reviewing issues in AI analysis. skip-diff-reviewer Maintainer to skip code-diff-reviewer check, after reviewing issues in AI analysis. SQL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants