Skip to content

feat(spec)!: add query ordering and make vectors optional - #366

Draft
Gallardot wants to merge 1 commit into
lance-format:mainfrom
Gallardot:fix-query-order-by-optional-vector
Draft

Gallardot wants to merge 1 commit into
lance-format:mainfrom
Gallardot:fix-query-order-by-optional-vector

Conversation

@Gallardot

Copy link
Copy Markdown

Expose Scanner-compatible order_by on QueryTableRequest and AnalyzeTableQueryPlanRequest, also available through ExplainTableQueryPlan. Make vector optional using the existing full_text_query schema style, without adding stricter vector constraints.

Regenerate the Python, Java Apache/Async, Spring Boot, and Rust components and model documentation through the existing repository tools. Keep Java OpenAPI exports as generator output without query-specific postprocessing. Export QueryTableOrderBy from the Python core package.

Add source-spec validation and model serialization regression tests using existing test runners. Follow the existing Python test-template workflow, preserve Java and Rust tests across regeneration, and correct the spec path in Python and Rust CI triggers.

Validation: make build, Java Checkstyle/Spotless, and Rust test formatting passed (Python: 295 tests; Java: 17 tests; Rust: 3 tests). Clean regeneration was reproducible. Regeneration and all 281 Python client tests also passed after simplifying schema validation to use only the source specification. Existing documentation link warnings remain. Scanner execution and error mapping require downstream implementation updates.

BREAKING CHANGE: The generated Rust QueryTableRequest and AnalyzeTableQueryPlanRequest vector fields are now optional, and their constructors take only k. Callers supplying a vector must assign Some(Box::new(vector)) after construction or in their struct initializer.

Expose Scanner-compatible order_by on QueryTableRequest and
AnalyzeTableQueryPlanRequest, also available through ExplainTableQueryPlan.
Make vector optional using the existing full_text_query schema style,
without adding stricter vector constraints.

Regenerate the Python, Java Apache/Async, Spring Boot, and Rust components
and model documentation through the existing repository tools. Keep Java
OpenAPI exports as generator output without query-specific postprocessing.
Export QueryTableOrderBy from the Python core package.

Add source-spec validation and model serialization regression tests using
existing test runners. Follow the existing Python test-template workflow,
preserve Java and Rust tests across regeneration, and correct the spec path
in Python and Rust CI triggers.

Validation: make build, Java Checkstyle/Spotless, and Rust test formatting
passed (Python: 295 tests; Java: 17 tests; Rust: 3 tests). Clean regeneration
was reproducible. Regeneration and all 281 Python client tests also passed
after simplifying schema validation to use only the source specification.
Existing documentation link warnings remain. Scanner execution and error
mapping require downstream implementation updates.

BREAKING CHANGE: The generated Rust QueryTableRequest and
AnalyzeTableQueryPlanRequest vector fields are now optional, and their
constructors take only k. Callers supplying a vector must assign
Some(Box::new(vector)) after construction or in their struct initializer.
@github-actions github-actions Bot added enhancement New feature or request breaking-change Features that introduces a breaking API change python Python features java Java features rust Rust features labels Sep 12, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change Features that introduces a breaking API change enhancement New feature or request java Java features python Python features rust Rust features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant