Skip to content

Conversation

@bsbodden
Copy link
Collaborator

Implements skip_decode parameter for return_fields() method to improve field deserialization UX. This allows users to skip decoding of binary fields like embeddings while still returning them in query results.

  • Added optional skip_decode parameter to BaseQuery.return_fields()
  • Parameter accepts string or list of field names to skip decoding
  • Maintains backward compatibility when skip_decode is not provided
  • Comprehensive unit test coverage for all query types
  • Enhanced skip_decode to use parent's return_field with decode_field=False
  • Added comprehensive integration tests with real Redis
  • Maintained full backward compatibility with return_field(decode_field=False)
  • Tests confirm proper binary field handling (embeddings, image data)

@bsbodden bsbodden self-assigned this Sep 29, 2025
@bsbodden bsbodden requested a review from Copilot September 29, 2025 15:28

This comment was marked as outdated.

This comment was marked as outdated.

@bsbodden bsbodden requested a review from Copilot September 29, 2025 22:59

This comment was marked as outdated.

This comment was marked as outdated.

Implements skip_decode parameter for return_fields() method to improve
field deserialization UX. This allows users to skip decoding of binary
fields like embeddings while still returning them in query results.

- Added optional skip_decode parameter to BaseQuery.return_fields()
- Parameter accepts string or list of field names to skip decoding
- Maintains backward compatibility when skip_decode is not provided
- Comprehensive unit test coverage for all query types
- Enhanced skip_decode to use parent's return_field with decode_field=False
- Added comprehensive integration tests with real Redis
- Maintained full backward compatibility with return_field(decode_field=False)
- Tests confirm proper binary field handling (embeddings, image data)
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@bsbodden bsbodden merged commit 9e93f68 into main Sep 30, 2025
38 checks passed
@bsbodden bsbodden deleted the bsb/issue-252 branch September 30, 2025 00:05
bsbodden added a commit to redis/redis-vl-java that referenced this pull request Oct 23, 2025
…on PR #389)

Add skipDecodeFields parameter to query builders to control binary field decoding:
- FilterQuery, VectorQuery, VectorRangeQuery, TextQuery
- Accepts List<String> or varargs of field names
- Returns immutable copy via getSkipDecodeFields()

Implementation details:
- Field names that should not be decoded from binary format
- Useful for binary data like embeddings and image data
- Validates field names cannot be null
- Maintains backward compatibility (defaults to empty list)

Test coverage:
- 10 unit tests in SkipDecodeFieldsTest
- Tests for all query types
- Validation tests for null handling
- Varargs convenience method tests

Python reference:
- skip_decode parameter in return_fields() method
- Prevents automatic decoding of specified binary fields
- Allows retrieval of raw bytes for embeddings/images

Refs: redis/redis-vl-python#389
Fixes: #252
bsbodden added a commit to redis/redis-vl-java that referenced this pull request Oct 23, 2025
…on PR #389)

Add skipDecodeFields parameter to query builders to control binary field decoding:
- FilterQuery, VectorQuery, VectorRangeQuery, TextQuery
- Accepts List<String> or varargs of field names
- Returns immutable copy via getSkipDecodeFields()

Implementation details:
- Field names that should not be decoded from binary format
- Useful for binary data like embeddings and image data
- Validates field names cannot be null
- Maintains backward compatibility (defaults to empty list)

Test coverage:
- 10 unit tests in SkipDecodeFieldsTest
- Tests for all query types
- Validation tests for null handling
- Varargs convenience method tests

Python reference:
- skip_decode parameter in return_fields() method
- Prevents automatic decoding of specified binary fields
- Allows retrieval of raw bytes for embeddings/images

Refs: redis/redis-vl-python#389
Fixes: #252
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants