GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat(bigquery): Support DATE-type event timestamp columns by Jwrede · Pull Request #6362 · feast-dev/feast

Conversation

@Jwrede

@Jwrede Jwrede commented May 3, 2026

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

When the event_timestamp column in BigQuery is a DATE type (not TIMESTAMP), the generated SQL wraps comparison values in TIMESTAMP(), causing a type mismatch error. This makes DATE-partitioned summary tables unusable without creating views or duplicate tables.

This PR adds an optional timestamp_field_type parameter to BigQuerySource. When set to "DATE", SQL generation uses DATE('YYYY-MM-DD') comparisons instead of TIMESTAMP('...'), both in direct queries (pull_latest_from_table_or_query, pull_all_from_table_or_query) and in the point-in-time join Jinja template.

Usage:

BigQuerySource(
    table="project:dataset.daily_features",
    timestamp_field="event_date",
    timestamp_field_type="DATE",
)

Changes:

  • Proto: add timestamp_field_type string field (field 28) to DataSource
  • DataSource base class: add timestamp_field_type attribute, equality check, and __init__ parameter
  • BigQuerySource: wire timestamp_field_type through __init__, from_proto, and _to_proto_impl
  • get_timestamp_filter_sql(): add "date_func" cast style that generates DATE('YYYY-MM-DD')
  • BigQueryOfflineStore: select cast style based on timestamp_field_type
  • Jinja template: conditional DATE() comparisons for DATE-type timestamp fields
  • FeatureViewQueryContext: propagate timestamp_field_type to template context

Backward-compatible: when timestamp_field_type is unset, behavior is unchanged.

Which issue(s) this PR fixes:

Fixes #2530 (part 2 -- DATE type event_timestamp support; part 1 was addressed by #6076)

How to test:

python -m pytest sdk/python/tests/unit/infra/offline_stores/test_bigquery.py -v

4 new tests added:

  • test_pull_latest_date_type_timestamp_field -- verifies DATE() cast in pull_latest
  • test_pull_all_date_type_timestamp_field -- verifies DATE() cast in pull_all
  • test_pull_latest_date_type_with_partition_column -- DATE type combined with partition pruning
  • test_bigquery_source_date_type_proto_roundtrip -- proto serialization roundtrip

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@Jwrede
Jwrede requested review from a team and sudohainguyen as code owners May 3, 2026 08:47
@Jwrede
Jwrede requested review from haoxu0, nquinn408 and shuchu and removed request for a team May 3, 2026 08:47
franciscojavierarceo
franciscojavierarceo approved these changes May 3, 2026
View reviewed changes
@Jwrede

Jwrede commented May 13, 2026

Copy link
Copy Markdown
Contributor Author

Friendly ping @sudohainguyen -- this and #6365 have been open ~10 days. Happy to address feedback.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole

ntkathole commented May 14, 2026

Copy link
Copy Markdown
Member

@Jwrede please resolve the conflicts and fix linting

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Jwrede
Jwrede force-pushed the feat/bq-date-timestamp-type branch from d8ccd7e to aed2012 Compare May 14, 2026 06:43
@Jwrede

Jwrede commented May 14, 2026

Copy link
Copy Markdown
Contributor Author

@ntkathole Rebased onto master and verified ruff check/format passes. All conflicts resolved.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ntkathole ntkathole added the ok-to-test label May 14, 2026
@ntkathole

ntkathole commented May 14, 2026

Copy link
Copy Markdown
Member

@Jwrede can you please regenerate protos using correct mypy-protobuf version pinned in CI ?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Jwrede

Jwrede commented May 14, 2026

Copy link
Copy Markdown
Contributor Author

@ntkathole Done -- reset all non-DataSource generated files to match master, then hand-edited DataSource_pb2.pyi to add only the timestamp_field_type field in the existing import style. Only DataSource_pb2.py and DataSource_pb2.pyi differ from master now.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Jwrede added 6 commits May 14, 2026 14:32
@Jwrede @ntkathole
feat(bigquery): Support DATE-type event timestamp columns
00f852d
When the event_timestamp column in BigQuery is a DATE type, the
generated SQL wraps comparison values in TIMESTAMP(), causing a type
mismatch error. This adds a timestamp_field_type parameter to
BigQuerySource that, when set to "DATE", generates DATE() comparisons
instead.

Closes feast-dev#2530 (part 2)

Signed-off-by: Jonathan Wrede <[email protected]>
@Jwrede @ntkathole
fix(bigquery): Use protobuf 4.25.x compatible generated code
d7dad5b
The proto files were regenerated with protobuf 6.31.1 / grpcio-tools
1.80.0, which imports runtime_version -- a module that does not exist
in protobuf 4.25.x used by the project. Revert generated code to
4.25.1 format while keeping the new timestamp_field_type field.

Signed-off-by: Jonathan Wrede <[email protected]>
@Jwrede @ntkathole
fix(bigquery): Add Literal type annotation for cast_style
de6f015
Mypy infers str from the ternary expression; annotate with the
exact Literal union so the call to get_timestamp_filter_sql passes
type checking.

Signed-off-by: Jonathan Wrede <[email protected]>
@Jwrede @ntkathole
fix: Make timestamp_field_type default to None in FeatureViewQueryCon…
af5849d
…text

Callers that do not use DATE-typed timestamp fields (e.g. Spark offline
store tests) should not be forced to pass timestamp_field_type. Adding
a default keeps the new field backward-compatible.

Signed-off-by: Jonathan Wrede <[email protected]>
@Jwrede @ntkathole
fix: Keep timestamp_field_type required in FeatureViewQueryContext
3a7744f
A default value on timestamp_field_type breaks the
SparkFeatureViewQueryContext subclass because its non-default fields
(min_date_partition, max_date_partition) would follow a field with a
default. Instead, keep it required and update the Spark test to pass it.

Signed-off-by: Jonathan Wrede <[email protected]>
@Jwrede @ntkathole
fix: regenerate protos matching upstream mypy-protobuf style
a28b283
Reset all non-DataSource generated files to match master.
Only DataSource_pb2.py and DataSource_pb2.pyi contain our
timestamp_field_type additions (field 28). The .pyi stub
is hand-edited to match the existing import style used on
master.

Signed-off-by: Jonathan Wrede <[email protected]>
@ntkathole
ntkathole force-pushed the feat/bq-date-timestamp-type branch from 27579ae to a28b283 Compare May 14, 2026 09:03
ntkathole
ntkathole approved these changes May 14, 2026
View reviewed changes
@ntkathole
ntkathole merged commit 753dee5 into feast-dev:master May 14, 2026
22 of 25 checks passed

Uh oh!

There was an error while loading. Please reload this page.

rpathade pushed a commit to rpathade/feast that referenced this pull request May 21, 2026
@Jwrede @rpathade
feat(bigquery): Support DATE-type event timestamp columns (feast-dev#…
403b527
…6362)

* feat(bigquery): Support DATE-type event timestamp columns

When the event_timestamp column in BigQuery is a DATE type, the
generated SQL wraps comparison values in TIMESTAMP(), causing a type
mismatch error. This adds a timestamp_field_type parameter to
BigQuerySource that, when set to "DATE", generates DATE() comparisons
instead.

Closes feast-dev#2530 (part 2)

Signed-off-by: Jonathan Wrede <[email protected]>

* fix(bigquery): Use protobuf 4.25.x compatible generated code

The proto files were regenerated with protobuf 6.31.1 / grpcio-tools
1.80.0, which imports runtime_version -- a module that does not exist
in protobuf 4.25.x used by the project. Revert generated code to
4.25.1 format while keeping the new timestamp_field_type field.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix(bigquery): Add Literal type annotation for cast_style

Mypy infers str from the ternary expression; annotate with the
exact Literal union so the call to get_timestamp_filter_sql passes
type checking.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: Make timestamp_field_type default to None in FeatureViewQueryContext

Callers that do not use DATE-typed timestamp fields (e.g. Spark offline
store tests) should not be forced to pass timestamp_field_type. Adding
a default keeps the new field backward-compatible.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: Keep timestamp_field_type required in FeatureViewQueryContext

A default value on timestamp_field_type breaks the
SparkFeatureViewQueryContext subclass because its non-default fields
(min_date_partition, max_date_partition) would follow a field with a
default. Instead, keep it required and update the Spark test to pass it.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: regenerate protos matching upstream mypy-protobuf style

Reset all non-DataSource generated files to match master.
Only DataSource_pb2.py and DataSource_pb2.pyi contain our
timestamp_field_type additions (field 28). The .pyi stub
is hand-edited to match the existing import style used on
master.

Signed-off-by: Jonathan Wrede <[email protected]>

---------

Signed-off-by: Jonathan Wrede <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>
rpathade pushed a commit to rpathade/feast that referenced this pull request May 21, 2026
@Jwrede @rpathade
feat(bigquery): Support DATE-type event timestamp columns (feast-dev#…
2014acd
…6362)

* feat(bigquery): Support DATE-type event timestamp columns

When the event_timestamp column in BigQuery is a DATE type, the
generated SQL wraps comparison values in TIMESTAMP(), causing a type
mismatch error. This adds a timestamp_field_type parameter to
BigQuerySource that, when set to "DATE", generates DATE() comparisons
instead.

Closes feast-dev#2530 (part 2)

Signed-off-by: Jonathan Wrede <[email protected]>

* fix(bigquery): Use protobuf 4.25.x compatible generated code

The proto files were regenerated with protobuf 6.31.1 / grpcio-tools
1.80.0, which imports runtime_version -- a module that does not exist
in protobuf 4.25.x used by the project. Revert generated code to
4.25.1 format while keeping the new timestamp_field_type field.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix(bigquery): Add Literal type annotation for cast_style

Mypy infers str from the ternary expression; annotate with the
exact Literal union so the call to get_timestamp_filter_sql passes
type checking.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: Make timestamp_field_type default to None in FeatureViewQueryContext

Callers that do not use DATE-typed timestamp fields (e.g. Spark offline
store tests) should not be forced to pass timestamp_field_type. Adding
a default keeps the new field backward-compatible.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: Keep timestamp_field_type required in FeatureViewQueryContext

A default value on timestamp_field_type breaks the
SparkFeatureViewQueryContext subclass because its non-default fields
(min_date_partition, max_date_partition) would follow a field with a
default. Instead, keep it required and update the Spark test to pass it.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: regenerate protos matching upstream mypy-protobuf style

Reset all non-DataSource generated files to match master.
Only DataSource_pb2.py and DataSource_pb2.pyi contain our
timestamp_field_type additions (field 28). The .pyi stub
is hand-edited to match the existing import style used on
master.

Signed-off-by: Jonathan Wrede <[email protected]>

---------

Signed-off-by: Jonathan Wrede <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>
ntkathole added a commit that referenced this pull request May 23, 2026
@rpathade @ntkathole
@1fanwang @jvincent-mongodb @Jwrede @patelchaitany
feat: Add enabled/disabled toggle for feature views (#6401)
5f1fa0d
* feat: Add enabled/disabled toggle for feature views

Signed-off-by: RutujaPathade <[email protected]>

* feat: Add demo noteboooks for users

Signed-off-by: ntkathole <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* feat: Add CLI enable/disable commands and registry metadata support

Signed-off-by: RutujaPathade <[email protected]>

* Added features

Signed-off-by: RutujaPathade <[email protected]>

* fix(compute-engine/local): Honor field_mapping on join keys in dedup + join nodes (#6395)

* fix: Apply field mapping to join keys in local compute engine nodes

When a batch source defines a `field_mapping` that renames an entity join
key (e.g. `USERID` -> `user_id`), the source-read node renames the columns
on the pulled Arrow table to their mapped names. Downstream `LocalDedupNode`
and `LocalJoinNode` then look up the *pre-mapping* names from
`column_info.join_keys`, which raises `KeyError: Index(['USERID'])` during
materialization (or returns an empty join).

Add a `join_keys_columns` property on `ColumnInfo` that mirrors the existing
`timestamp_column` / `created_timestamp_column` properties — returning join
keys translated through `field_mapping` — and use it from the dedup and
join nodes.

Fixes #5942.

Signed-off-by: 1fanwang <[email protected]>

* test: also cover LocalJoinNode field_mapping case

Signed-off-by: 1fanwang <[email protected]>

---------

Signed-off-by: 1fanwang <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* feat: Add Prometheus gauges for FeatureStore installation telemetry (#6354)

Signed-off-by: ntkathole <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* docs: Rename Atlas Vector Search to MongoDB Vector Search and fix code examples

Signed-off-by: jvincent-mongodb <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* feat(dynamodb): Use ProjectionExpression when requested_features is set

The requested_features parameter was accepted by online_read and
online_read_async but never used -- DynamoDB always fetched all
features stored in the values map regardless. Add a
ProjectionExpression to BatchGetItem requests when requested_features
is provided, reducing data transfer, latency, and read costs.

Fixes #6058

Signed-off-by: Jonathan Wrede <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* fix(dynamodb): Fix mypy type for _build_projection_expression return

The return dict contains both str and Dict[str, str] values, so the
return type must be Dict[str, Any] not Dict[str, str].

Signed-off-by: Jonathan Wrede <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* fix(bigquery): Enable list inference for parquet loads in offline_write_batch

When pushing features with array/list types (e.g. STRING_LIST) to
BigQuery via offline_write_batch, the data arrives as empty arrays
because BigQuery's parquet loader does not infer list structure by
default. Set parquet_options.enable_list_inference = True on the
LoadJobConfig so array columns are written correctly.

Fixes #5845

Signed-off-by: Jonathan Wrede <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* fix(trino): Clean up temporary entity tables after retrieval (#6381)

* fix(trino): Clean up temporary entity tables after retrieval

TrinoOfflineStore.get_historical_features() creates a temporary table
for the entity DataFrame but never drops it, leaking tables
indefinitely. Apply the same context manager pattern used by
BigQuery, Redshift, and Athena offline stores: wrap the query in a
generator that issues DROP TABLE IF EXISTS in a finally block.

Fixes #6306

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: sort imports for ruff compliance

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: decouple temp table cleanup from query access

Avoid dropping the temporary entity table on to_sql() calls.
Previously, every method used a context manager that dropped
the table on exit, so calling to_sql() before to_df() would
destroy the table and cause subsequent queries to fail.

Now the query is stored as a plain string and cleanup is
handled by a dedicated _drop_temp_table() method called only
after query execution (to_df, to_trino). A __del__ fallback
ensures cleanup if execution methods are never called. The
_cleaned_up flag makes the drop idempotent.

Signed-off-by: Jonathan Wrede <[email protected]>

---------

Signed-off-by: Jonathan Wrede <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* feat(bigquery): Support DATE-type event timestamp columns (#6362)

* feat(bigquery): Support DATE-type event timestamp columns

When the event_timestamp column in BigQuery is a DATE type, the
generated SQL wraps comparison values in TIMESTAMP(), causing a type
mismatch error. This adds a timestamp_field_type parameter to
BigQuerySource that, when set to "DATE", generates DATE() comparisons
instead.

Closes #2530 (part 2)

Signed-off-by: Jonathan Wrede <[email protected]>

* fix(bigquery): Use protobuf 4.25.x compatible generated code

The proto files were regenerated with protobuf 6.31.1 / grpcio-tools
1.80.0, which imports runtime_version -- a module that does not exist
in protobuf 4.25.x used by the project. Revert generated code to
4.25.1 format while keeping the new timestamp_field_type field.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix(bigquery): Add Literal type annotation for cast_style

Mypy infers str from the ternary expression; annotate with the
exact Literal union so the call to get_timestamp_filter_sql passes
type checking.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: Make timestamp_field_type default to None in FeatureViewQueryContext

Callers that do not use DATE-typed timestamp fields (e.g. Spark offline
store tests) should not be forced to pass timestamp_field_type. Adding
a default keeps the new field backward-compatible.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: Keep timestamp_field_type required in FeatureViewQueryContext

A default value on timestamp_field_type breaks the
SparkFeatureViewQueryContext subclass because its non-default fields
(min_date_partition, max_date_partition) would follow a field with a
default. Instead, keep it required and update the Spark test to pass it.

Signed-off-by: Jonathan Wrede <[email protected]>

* fix: regenerate protos matching upstream mypy-protobuf style

Reset all non-DataSource generated files to match master.
Only DataSource_pb2.py and DataSource_pb2.pyi contain our
timestamp_field_type additions (field 28). The .pyi stub
is hand-edited to match the existing import style used on
master.

Signed-off-by: Jonathan Wrede <[email protected]>

---------

Signed-off-by: Jonathan Wrede <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* fix: Fixes for ray source

Signed-off-by: ntkathole <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* feat: Expose registry endpoints on feature server for MCP access

Mount the existing REST registry routers under /registry on the feature
server so that fastapi_mcp automatically exposes registry introspection
(list/get for entities, feature views, data sources, feature services,
permissions, projects, saved datasets, lineage, search) as MCP tools.

The RegistryServer is created in-process from store.registry — no
external registry server is required. Auth is enforced via
inject_user_details on every mounted router.

Made-with: Cursor
Signed-off-by: Chaitany patel <[email protected]>
Made-with: Cursor
Signed-off-by: RutujaPathade <[email protected]>

* fix: Revert state propagation to always update in _update_metadata_fields

Signed-off-by: RutujaPathade <[email protected]>

* fix: Recompile protos for protobuf 4.x compatibility and fix state machine to be opt-in

Signed-off-by: RutujaPathade <[email protected]>

* feat: Add unit tests for state machine and clean up lazy imports in registry

Signed-off-by: RutujaPathade <[email protected]>

* fix: Address review comments for feature view state management

Signed-off-by: RutujaPathade <[email protected]>

* fix: Resolve integration test failures in apply loop

Signed-off-by: RutujaPathade <[email protected]>

* fix: Resolve integration test failures in apply loop

Signed-off-by: RutujaPathade <[email protected]>

* Apply suggestion from @ntkathole

Co-authored-by: Nikhil Kathole <[email protected]>
Signed-off-by: RutujaPathade <[email protected]>

* fix: Resolve review comments for feature_store

Signed-off-by: RutujaPathade <[email protected]>

* fix: Resolve review comments for feature_views.py

Signed-off-by: RutujaPathade <[email protected]>

* feat: Add FeatureStore methods and update describe for enabled/state

Signed-off-by: RutujaPathade <[email protected]>

* fix: Add type: ignore comments for mypy on BaseFeatureView attr access

Signed-off-by: RutujaPathade <[email protected]>

* fix: Remove REST API endpoints for enable/disable/set-state (deferred to follow-up PR)

Signed-off-by: RutujaPathade <[email protected]>

---------

Signed-off-by: RutujaPathade <[email protected]>
Signed-off-by: ntkathole <[email protected]>
Signed-off-by: 1fanwang <[email protected]>
Signed-off-by: jvincent-mongodb <[email protected]>
Signed-off-by: Jonathan Wrede <[email protected]>
Signed-off-by: Chaitany patel <[email protected]>
Co-authored-by: RutujaPathade <[email protected]>
Co-authored-by: ntkathole <[email protected]>
Co-authored-by: Stefan Wang <[email protected]>
Co-authored-by: jvincent-mongodb <[email protected]>
Co-authored-by: Jonathan Wrede <[email protected]>
Co-authored-by: Jwrede <[email protected]>
Co-authored-by: Chaitany patel <[email protected]>
franciscojavierarceo pushed a commit that referenced this pull request Jun 13, 2026
@feast-ci-bot
chore(release): release 0.64.0
9bb73cc
# [0.64.0](v0.63.0...v0.64.0) (2026-06-13)

### Bug Fixes

* Add async_supported property to RedisOnlineStore ([9b088fe](9b088fe))
* Add missing feast init templates to operator CRD and enhance persistence documentation ([1941d4d](1941d4d))
* Allow to publish from reference branch ([5458ec8](5458ec8))
* API calls list ([4203eb7](4203eb7))
* **bigquery:** Enable list inference for parquet loads in offline_write_batch ([9243497](9243497)), closes [#5845](#5845)
* Bump grpcio dependencies ([07b4782](07b4782))
* **compute-engine/local:** Honor field_mapping on join keys in dedup + join nodes ([#6395](#6395)) ([bd01824](bd01824))
* **dynamodb:** Avoid tag race condition by using diff-based tag updates ([#6479](#6479)) ([bad2b7d](bad2b7d)), closes [#6418](#6418)
* **dynamodb:** Fix mypy type for _build_projection_expression return ([217b4da](217b4da))
* Fix intermittent async test failures for DynamoDB and Redis ([63c5eb1](63c5eb1))
* Fix mongodb blog title ([57d28d4](57d28d4))
* Fix shared SQL registry crash - avoid unnecessary UDF deserialization in proto cache building ([ac588d7](ac588d7))
* Fix SparkRetrievalJob.persist() failing for SparkSource ([209d7cd](209d7cd))
* Fixed formatting and image for mongo blog ([#6377](#6377)) ([f8389fb](f8389fb))
* Fixes for ray source ([7f592a4](7f592a4))
* **go:** skip registry refresh when cache_ttl_seconds <= 0 ([97ed40c](97ed40c))
* Handle array of strings columns in Athena materialization ([#6324](#6324)) ([4ed0278](4ed0278))
* make milvus VARCHAR max_length configurable, remove hardcoded 512 limit ([3b98c22](3b98c22))
* **operator:** Set appProtocol: grpc on registry gRPC Service ([#6367](#6367)) ([c9ae2b4](c9ae2b4))
* PyJWT 2.10+ added validation that rejects empty HMAC keys ([e756ffe](e756ffe))
* RemoteOnlineStore sends all features in a single HTTP request ([8f187dd](8f187dd))
* Remove registry proto dump to enforce RBAC and add permission checks to Commit/Refresh RPCs ([328431f](328431f))
* Remove selector migration job - no longer needed ([51c325e](51c325e))
* replace broken .claude skill symlink with correct relative path ([4541690](4541690))
* Replace selector label strip patch with migration Job for upgrade-safe selector uniqueness ([00dea50](00dea50))
* Scope feature view name conflict check to current project in file-based registry ([#6369](#6369)) ([a4fde83](a4fde83)), closes [#6209](#6209)
* **snowflake:** Stop double-quoting connection identifiers ([#6462](#6462)) ([e914d59](e914d59))
* **spark:** S3/GCS PyArrow filesystem resolution for staging paths ([#6442](#6442)) ([ae50414](ae50414))
* **trino:** Clean up temporary entity tables after retrieval ([#6381](#6381)) ([d86b13d](d86b13d)), closes [#6306](#6306)
* Update go-feature-server base image to Go 1.25 and fix operator Dockerfile COPY permissions ([86ef0bc](86ef0bc))

### Features

* [Backend] Data Quality Monitoring with native compute, multi-backend support, REST API, CLI ([#6202](#6202)) ([5458c37](5458c37))
* Add apache flink compute engine ([#6476](#6476)) ([9636d6a](9636d6a))
* Add demo noteboooks for users ([e362173](e362173))
* Add enabled/disabled toggle for feature views ([#6401](#6401)) ([5f1fa0d](5f1fa0d)), closes [#6395](#6395)
* Add Label View to init template ([ec272d5](ec272d5))
* Add mTLS support to remote registry gRPC client ([#6474](#6474)) ([c9602d8](c9602d8))
* Add Prometheus gauges for FeatureStore installation telemetry ([#6354](#6354)) ([1b681b7](1b681b7))
* Adds registry REST API endpoints for managing entities, data sources, and feature views ([#6413](#6413)) ([f77bd1d](f77bd1d))
* Allow CRUD on entities, data sources, and feature views from UI ([#6412](#6412)) ([2321c07](2321c07))
* Allow default openlineage configuration ([#6467](#6467)) ([276b6df](276b6df))
* **bigquery:** Support DATE-type event timestamp columns ([#6362](#6362)) ([753dee5](753dee5)), closes [#2530](#2530)
* **cli:** Add `feast projects delete` command (closes [#5095](#5095)) ([#6318](#6318)) ([1a4b96c](1a4b96c))
* Data Quality Monitoring added in feast UI ([#6422](#6422)) ([fa271be](fa271be))
* **dynamodb:** Use ProjectionExpression when requested_features is set ([0adc906](0adc906)), closes [#6058](#6058)
* Enhance DataSource and FeatureView modals with error handling and submission states ([96d7169](96d7169))
* Expose registry endpoints on feature server for MCP access ([f77981c](f77981c))
* Feast First-Class LabelView Implementation ([#6292](#6292)) ([c0e7e5d](c0e7e5d))
* Feast-MLflow Integration ([#6235](#6235)) ([7279c75](7279c75))
* Operational metrics for offline store and SOX metrics for both ([#6340](#6340)) ([65b1b80](65b1b80))
* Pre-compute feature service ([8011550](8011550))
* REST API-backed UI for RBAC compatibility and per-page lazy loading ([#6414](#6414)) ([6ae80af](6ae80af))
* Support non-string map key types ([#6382](#6382)) ([#6383](#6383)) ([728aa2e](728aa2e))
* Update FeatureStore CRD with DRA Fields ([01241e4](01241e4))

### Performance Improvements

* Cache feature view resolution in get_online_features to reduce per-request overhead ([55c2f18](55c2f18))
* Optimize feature serving latency with batched async Redis, cached checks fix ([103809a](103809a))
* Replace MessageToDict with optimized custom dict builder ([#6015](#6015)) ([9902064](9902064))
Srihari1192 pushed a commit to Srihari1192/feast that referenced this pull request Jun 22, 2026
@feast-ci-bot Srihari Venkataramaiah
chore(release): release 0.64.0
22c3721
# [0.64.0](feast-dev/feast@v0.63.0...v0.64.0) (2026-06-13)

### Bug Fixes

* Add async_supported property to RedisOnlineStore ([9b088fe](feast-dev@9b088fe))
* Add missing feast init templates to operator CRD and enhance persistence documentation ([1941d4d](feast-dev@1941d4d))
* Allow to publish from reference branch ([5458ec8](feast-dev@5458ec8))
* API calls list ([4203eb7](feast-dev@4203eb7))
* **bigquery:** Enable list inference for parquet loads in offline_write_batch ([9243497](feast-dev@9243497)), closes [feast-dev#5845](feast-dev#5845)
* Bump grpcio dependencies ([07b4782](feast-dev@07b4782))
* **compute-engine/local:** Honor field_mapping on join keys in dedup + join nodes ([feast-dev#6395](feast-dev#6395)) ([bd01824](feast-dev@bd01824))
* **dynamodb:** Avoid tag race condition by using diff-based tag updates ([feast-dev#6479](feast-dev#6479)) ([bad2b7d](feast-dev@bad2b7d)), closes [feast-dev#6418](feast-dev#6418)
* **dynamodb:** Fix mypy type for _build_projection_expression return ([217b4da](feast-dev@217b4da))
* Fix intermittent async test failures for DynamoDB and Redis ([63c5eb1](feast-dev@63c5eb1))
* Fix mongodb blog title ([57d28d4](feast-dev@57d28d4))
* Fix shared SQL registry crash - avoid unnecessary UDF deserialization in proto cache building ([ac588d7](feast-dev@ac588d7))
* Fix SparkRetrievalJob.persist() failing for SparkSource ([209d7cd](feast-dev@209d7cd))
* Fixed formatting and image for mongo blog ([feast-dev#6377](feast-dev#6377)) ([f8389fb](feast-dev@f8389fb))
* Fixes for ray source ([7f592a4](feast-dev@7f592a4))
* **go:** skip registry refresh when cache_ttl_seconds <= 0 ([97ed40c](feast-dev@97ed40c))
* Handle array of strings columns in Athena materialization ([feast-dev#6324](feast-dev#6324)) ([4ed0278](feast-dev@4ed0278))
* make milvus VARCHAR max_length configurable, remove hardcoded 512 limit ([3b98c22](feast-dev@3b98c22))
* **operator:** Set appProtocol: grpc on registry gRPC Service ([feast-dev#6367](feast-dev#6367)) ([c9ae2b4](feast-dev@c9ae2b4))
* PyJWT 2.10+ added validation that rejects empty HMAC keys ([e756ffe](feast-dev@e756ffe))
* RemoteOnlineStore sends all features in a single HTTP request ([8f187dd](feast-dev@8f187dd))
* Remove registry proto dump to enforce RBAC and add permission checks to Commit/Refresh RPCs ([328431f](feast-dev@328431f))
* Remove selector migration job - no longer needed ([51c325e](feast-dev@51c325e))
* replace broken .claude skill symlink with correct relative path ([4541690](feast-dev@4541690))
* Replace selector label strip patch with migration Job for upgrade-safe selector uniqueness ([00dea50](feast-dev@00dea50))
* Scope feature view name conflict check to current project in file-based registry ([feast-dev#6369](feast-dev#6369)) ([a4fde83](feast-dev@a4fde83)), closes [feast-dev#6209](feast-dev#6209)
* **snowflake:** Stop double-quoting connection identifiers ([feast-dev#6462](feast-dev#6462)) ([e914d59](feast-dev@e914d59))
* **spark:** S3/GCS PyArrow filesystem resolution for staging paths ([feast-dev#6442](feast-dev#6442)) ([ae50414](feast-dev@ae50414))
* **trino:** Clean up temporary entity tables after retrieval ([feast-dev#6381](feast-dev#6381)) ([d86b13d](feast-dev@d86b13d)), closes [feast-dev#6306](feast-dev#6306)
* Update go-feature-server base image to Go 1.25 and fix operator Dockerfile COPY permissions ([86ef0bc](feast-dev@86ef0bc))

### Features

* [Backend] Data Quality Monitoring with native compute, multi-backend support, REST API, CLI ([feast-dev#6202](feast-dev#6202)) ([5458c37](feast-dev@5458c37))
* Add apache flink compute engine ([feast-dev#6476](feast-dev#6476)) ([9636d6a](feast-dev@9636d6a))
* Add demo noteboooks for users ([e362173](feast-dev@e362173))
* Add enabled/disabled toggle for feature views ([feast-dev#6401](feast-dev#6401)) ([5f1fa0d](feast-dev@5f1fa0d)), closes [feast-dev#6395](feast-dev#6395)
* Add Label View to init template ([ec272d5](feast-dev@ec272d5))
* Add mTLS support to remote registry gRPC client ([feast-dev#6474](feast-dev#6474)) ([c9602d8](feast-dev@c9602d8))
* Add Prometheus gauges for FeatureStore installation telemetry ([feast-dev#6354](feast-dev#6354)) ([1b681b7](feast-dev@1b681b7))
* Adds registry REST API endpoints for managing entities, data sources, and feature views ([feast-dev#6413](feast-dev#6413)) ([f77bd1d](feast-dev@f77bd1d))
* Allow CRUD on entities, data sources, and feature views from UI ([feast-dev#6412](feast-dev#6412)) ([2321c07](feast-dev@2321c07))
* Allow default openlineage configuration ([feast-dev#6467](feast-dev#6467)) ([276b6df](feast-dev@276b6df))
* **bigquery:** Support DATE-type event timestamp columns ([feast-dev#6362](feast-dev#6362)) ([753dee5](feast-dev@753dee5)), closes [feast-dev#2530](feast-dev#2530)
* **cli:** Add `feast projects delete` command (closes [feast-dev#5095](feast-dev#5095)) ([feast-dev#6318](feast-dev#6318)) ([1a4b96c](feast-dev@1a4b96c))
* Data Quality Monitoring added in feast UI ([feast-dev#6422](feast-dev#6422)) ([fa271be](feast-dev@fa271be))
* **dynamodb:** Use ProjectionExpression when requested_features is set ([0adc906](feast-dev@0adc906)), closes [feast-dev#6058](feast-dev#6058)
* Enhance DataSource and FeatureView modals with error handling and submission states ([96d7169](feast-dev@96d7169))
* Expose registry endpoints on feature server for MCP access ([f77981c](feast-dev@f77981c))
* Feast First-Class LabelView Implementation ([feast-dev#6292](feast-dev#6292)) ([c0e7e5d](feast-dev@c0e7e5d))
* Feast-MLflow Integration ([feast-dev#6235](feast-dev#6235)) ([7279c75](feast-dev@7279c75))
* Operational metrics for offline store and SOX metrics for both ([feast-dev#6340](feast-dev#6340)) ([65b1b80](feast-dev@65b1b80))
* Pre-compute feature service ([8011550](feast-dev@8011550))
* REST API-backed UI for RBAC compatibility and per-page lazy loading ([feast-dev#6414](feast-dev#6414)) ([6ae80af](feast-dev@6ae80af))
* Support non-string map key types ([feast-dev#6382](feast-dev#6382)) ([feast-dev#6383](feast-dev#6383)) ([728aa2e](feast-dev@728aa2e))
* Update FeatureStore CRD with DRA Fields ([01241e4](feast-dev@01241e4))

### Performance Improvements

* Cache feature view resolution in get_online_features to reduce per-request overhead ([55c2f18](feast-dev@55c2f18))
* Optimize feature serving latency with batched async Redis, cached checks fix ([103809a](feast-dev@103809a))
* Replace MessageToDict with optimized custom dict builder ([feast-dev#6015](feast-dev#6015)) ([9902064](feast-dev@9902064))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@franciscojavierarceo franciscojavierarceo franciscojavierarceo approved these changes
@ntkathole ntkathole ntkathole approved these changes
@sudohainguyen sudohainguyen Awaiting requested review from sudohainguyen sudohainguyen is a code owner
@shuchu shuchu Awaiting requested review from shuchu shuchu is a code owner automatically assigned from feast-dev/maintainers
@haoxu0 haoxu0 Awaiting requested review from haoxu0 haoxu0 is a code owner automatically assigned from feast-dev/maintainers
@nquinn408 nquinn408 Awaiting requested review from nquinn408 nquinn408 is a code owner automatically assigned from feast-dev/maintainers

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

ok-to-test

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Handle BigQuery partitions when event_timestamp is not the partition column, deal with event_timestamp columns of DATE type

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@Jwrede @ntkathole @franciscojavierarceo
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.