You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: Add UUID and TIME_UUID as feature types (feast-dev#5885)
Signed-off-by: soojin <soojin@dable.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: soojin <soojin@dable.io>
* test: Add unit tests for UUID type support
Signed-off-by: soojin <soojin@dable.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: soojin <soojin@dable.io>
* style: Fix ruff lint and formatting issues
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: soojin <soojin@dable.io>
* feat: Add dedicated UUID/TIME_UUID proto fields to Value.proto
Add uuid_val, time_uuid_val, uuid_list_val, time_uuid_list_val as
dedicated oneof fields in the Value proto message, replacing the
previous reuse of string_val/string_list_val. This allows UUID types
to be identified from the proto field alone without requiring a
feature_types side-channel. Backward compatibility is maintained for
data previously stored as string_val.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: soojin <soojin@dable.io>
* fix: Address review feedback for UUID type support
Signed-off-by: soojin <soojin@dable.io>
* fix: Address review feedback for UUID type support
Signed-off-by: soojin <soojin@dable.io>
* fix: Address review feedback
Signed-off-by: soojin <soojin@dable.io>
* fix: Convert uuid.UUID to string for Arrow and JSON serialization
Signed-off-by: soojin <soojin@dable.io>
* feat: Add UUID_SET/TIME_UUID_SET support and update type system docs
Add Set(Uuid) and Set(TimeUuid) as feature types with full roundtrip
support, backward compatibility, and documentation for all UUID types.
Signed-off-by: soojin <soojin@dable.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: Preserve PDF_BYTES/IMAGE_BYTES enum values and add missing SET type mappings
Keep PDF_BYTES=30 and IMAGE_BYTES=31 at their upstream values instead of
renumbering them. Shift UUID types to 32-37 in both proto and Python enum.
Also add missing SET type entries in _convert_value_type_str_to_value_type(),
convert_array_column(), and _get_sample_values_by_type() for completeness.
Signed-off-by: soojin <soojin@dable.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: Correct misleading comment in Set.__init__
The comment claimed Sets do not support UUID/TimeUuid but the code
intentionally allows them. Updated to reflect actual behavior.
Signed-off-by: soojin <soojin@dable.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: Extract UUID Arrow conversion into helper and move import to top
Signed-off-by: soojin <soojin@dable.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: Handle UUID types in _proto_value_to_transport_value for JSON serialization
Return UUID proto fields as plain strings instead of falling through to
feast_value_type_to_python_type which converts them to uuid.UUID objects
that are not JSON-serializable, causing TypeError during HTTP transport.
Signed-off-by: soojin <soojin@dable.io>
* chore: Regenerate protobuf files with UUID type support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: soojin <soojin@dable.io>
* fix: Fix mypy type ignore comments for UUID collection conversions
Add [misc] error code to type: ignore comments in UUID list/set
proto conversion to satisfy mypy's stricter checking.
Signed-off-by: Soojin Lee <soooojin.lee@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: soojin <soojin@dable.io>
---------
Signed-off-by: soojin <soojin@dable.io>
Signed-off-by: Soojin Lee <soooojin.lee@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: yuanjun220 <1069645408@qq.com>
-**Domain-specific primitives**: `PdfBytes` (PDF binary data for RAG/document pipelines) and `ImageBytes` (image binary data for multimodal pipelines). These are semantic aliases over `Bytes` and must be explicitly declared in schema — no backend infers them.
12
-
-**Array types**: ordered lists of any primitive type, e.g. `Array(Int64)`, `Array(String)`.
12
+
-**UUID types**: `Uuid` and `TimeUuid` for universally unique identifiers. Stored as strings at the proto level but deserialized to `uuid.UUID` objects in Python.
13
+
-**Array types**: ordered lists of any primitive type, e.g. `Array(Int64)`, `Array(String)`, `Array(Uuid)`.
13
14
-**Set types**: unordered collections of unique values for any primitive type, e.g. `Set(String)`, `Set(Int64)`. Set types are not inferred by any backend and must be explicitly declared. They are best suited for online serving use cases.
14
15
-**Map types**: dictionary-like structures with string keys and values that can be any supported Feast type (including nested maps), e.g. `Map`, `Array(Map)`.
15
16
-**JSON type**: opaque JSON data stored as a string at the proto level but semantically distinct from `String` — backends use native JSON types (`jsonb`, `VARIANT`, etc.), e.g. `Json`, `Array(Json)`.
0 commit comments