Skip to content

fix(vikingdb): normalize created_at filters in API key client - #3954

Open
heaoxiang-ai wants to merge 1 commit into
volcengine:mainfrom
heaoxiang-ai:fix/time-range-filter-serialization
Open

fix(vikingdb): normalize created_at filters in API key client#3954
heaoxiang-ai wants to merge 1 commit into
volcengine:mainfrom
heaoxiang-ai:fix/time-range-filter-serialization

Conversation

@heaoxiang-ai

@heaoxiang-ai heaoxiang-ai commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Description

Fix date filtering for the commercial VikingDB data plane that uses Bearer API-key authentication. OpenViking keeps compiling TimeRange to its existing internal range DSL, while VolcengineApiKeyCollection now translates only created_at range nodes inside the outgoing filter to VikingDB time_range nodes.

This keeps the shared adapter behavior unchanged for local, cuVS, HTTP, Volcengine AK/SK, and custom backends.

Human Involvement

  • A human participated in the implementation or review loop
  • This PR was generated entirely by AI agents without human participation in the loop

Related Issue

N/A

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test update

Changes Made

  • Normalize range to time_range only for created_at nodes in the outgoing VikingDB API-key client filter.
  • Apply the conversion only to the request body filter; upsert and update data remain untouched.
  • Preserve numeric range nodes and nested boolean filter structure.
  • Add a client-boundary regression test covering the converted date filter and an unchanged numeric filter.

Testing

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have tested this on the following platforms:
    • Linux
    • macOS
    • Windows

Verified by directly invoking the focused client test with uv run python; the API-key client test passed, and an additional assertion confirmed the shared base adapter still emits range.

Also verified:

uvx ruff check openviking/storage/vectordb/collection/volcengine_api_key_collection.py tests/storage/test_volcengine_clients.py
uvx ruff format --check openviking/storage/vectordb/collection/volcengine_api_key_collection.py tests/storage/test_volcengine_clients.py
git diff --check

Checklist

  • My code follows the project coding style
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

Screenshots (if applicable)

N/A

Additional Notes

The local full pytest invocation exits with status 139 while loading the native-extension test environment. The focused client test itself passes when invoked directly.

@heaoxiang-ai
heaoxiang-ai force-pushed the fix/time-range-filter-serialization branch from cc17b36 to a3da8f6 Compare August 12, 2026 08:21
@heaoxiang-ai heaoxiang-ai changed the title fix(vectordb): compile TimeRange with date-time operator fix(vikingdb): normalize created_at filters in API key client Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant