Skip to content

Comments

feat: Add PostgreSQL online store support for Go feature server#5963

Merged
franciscojavierarceo merged 4 commits intofeast-dev:masterfrom
samuelkim7:feat/go-postgres-onlinestore
Feb 12, 2026
Merged

feat: Add PostgreSQL online store support for Go feature server#5963
franciscojavierarceo merged 4 commits intofeast-dev:masterfrom
samuelkim7:feat/go-postgres-onlinestore

Conversation

@samuelkim7
Copy link
Contributor

@samuelkim7 samuelkim7 commented Feb 11, 2026

What this PR does / why we need it:

Adds PostgreSQL online store support for the Go feature server using pgx/v5 with connection pooling.

Changes:

  • postgresonlinestore.go: PostgreSQL online store implementation using pgx/v5 connection pool, batch entity key lookups, schema isolation, and safe credential handling
  • postgresonlinestore_test.go: Unit tests for connection string building, special character handling, constructor initialization, and schema configuration
  • onlinestore.go: Registered "postgres" type in the online store factory
  • go.mod/go.sum: Added github.com/jackc/pgx/v5 dependency

Which issue(s) this PR fixes:

Enables the Go feature server to serve features from the PostgreSQL online store, matching the existing Python SDK capability.

Misc

Follows the same table schema and entity key serialization as the Python PostgreSQL online store.
Verified by running the Go feature server locally in a Docker container and fetching features from a PostgreSQL online store set up in GCP.


Open with Devin

Signed-off-by: samuelkim7 <samuel.kim@goflink.com>
@samuelkim7 samuelkim7 requested a review from a team as a code owner February 11, 2026 22:18
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 2 potential issues.

View 6 additional findings in Devin Review.

Open in Devin Review

samuelkim7 and others added 2 commits February 11, 2026 23:42
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: samuelkim7 <samuel.kim@goflink.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: samuelkim7 <samuel.kim@goflink.com>
@samuelkim7 samuelkim7 force-pushed the feat/go-postgres-onlinestore branch from 4945db9 to b25c9c6 Compare February 11, 2026 22:43
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View 10 additional findings in Devin Review.

Open in Devin Review

Signed-off-by: samuelkim7 <samuel.kim@goflink.com>
@franciscojavierarceo franciscojavierarceo merged commit b8c6f3d into feast-dev:master Feb 12, 2026
17 checks passed
patelchaitany pushed a commit to patelchaitany/feast that referenced this pull request Feb 16, 2026
…t-dev#5963)

* feat: Add PostgreSQL online store support for Go feature server

Signed-off-by: samuelkim7 <samuel.kim@goflink.com>

* Update go/internal/feast/onlinestore/postgresonlinestore.go

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: samuelkim7 <samuel.kim@goflink.com>

* Update go/internal/feast/onlinestore/postgresonlinestore.go

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: samuelkim7 <samuel.kim@goflink.com>

* fix: Deduplicate feature view queries and fix index mapping

Signed-off-by: samuelkim7 <samuel.kim@goflink.com>

---------

Signed-off-by: samuelkim7 <samuel.kim@goflink.com>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: Chaitany patel <patelchaitany93@gmail.com>
franciscojavierarceo pushed a commit that referenced this pull request Feb 17, 2026
# [0.60.0](v0.59.0...v0.60.0) (2026-02-17)

### Bug Fixes

* Added a flag to correctly download the go binaries ([0f77135](0f77135))
* Adds mapping of date Trino's type into string Feast's type ([531e839](531e839))
* **ci:** Use uv run for pytest in master_only benchmark step ([#5957](#5957)) ([5096010](5096010))
* Disable materialized odfvs for historical retrieval ([#5880](#5880)) ([739d28a](739d28a))
* Fix linting and formatting issues ([#5907](#5907)) ([42ca14a](42ca14a))
* Make timestamp field handling  compatible with Athena V3 ([#5936](#5936)) ([e2bad34](e2bad34))
* Support pgvector under non-default schema ([#5970](#5970)) ([c636cd4](c636cd4))
* unit tests not running on main branch ([#5909](#5909)) ([62fe664](62fe664))
* Update java dep which blocking release ([#5903](#5903)) ([a5b8186](a5b8186))
* Update the dockerfile with golang 1.24.12. ([#5918](#5918)) ([be1b522](be1b522))
* Use context.Background() in client constructors ([#5897](#5897)) ([984f93a](984f93a))

### Features

* Add blog post for PyTorch ecosystem announcement ([#5906](#5906)) ([d2eb629](d2eb629))
* Add blog post on Feast dbt integration ([#5915](#5915)) ([b3c8138](b3c8138))
* Add DynamoDB in-place list update support for array-based features ([#5916](#5916)) ([aa5973f](aa5973f))
* Add HTTP connection pooling for remote online store client ([#5895](#5895)) ([e022bf8](e022bf8))
* Add integration tests for dbt import ([#5899](#5899)) ([a444692](a444692))
* Add lazy initialization and feature service caching ([#5924](#5924)) ([b37b7d0](b37b7d0))
* Add multiple entity support to dbt integration ([#5901](#5901)) ([05a4fb5](05a4fb5)), closes [#5872](#5872)
* Add PostgreSQL online store support for Go feature server ([#5963](#5963)) ([b8c6f3d](b8c6f3d))
* Add publish docker image of Go feature server. ([#5923](#5923)) ([759d8c6](759d8c6))
* Add Set as feature type ([#5888](#5888)) ([52458fc](52458fc))
* Added online server worker config support in operator ([#5926](#5926)) ([193c72a](193c72a))
* Added support for OpenLineage integration ([#5884](#5884)) ([df70d8d](df70d8d))
* Adjust ray offline store to support abfs(s) ADLS Azure Storage ([#5911](#5911)) ([d6c0b2d](d6c0b2d))
* Batch_engine config injection in feature_store.yaml through operator ([#5938](#5938)) ([455d56c](455d56c))
* Consolidate Python packaging - remove setup.py/setup.cfg, standardize on pyproject.toml and uv ([16696b8](16696b8))
* **go:** Add MySQL registry store support for Go feature server ([#5933](#5933)) ([19f9bb8](19f9bb8))
* Improve local dev experience with file-aware hooks and auto parallelization ([#5956](#5956)) ([839b79e](839b79e))
* Modernize precommit hooks and optimize test performance ([#5929](#5929)) ([ea7d4fa](ea7d4fa))
* Optimize container infrastructure for production ([#5881](#5881)) ([5ebdac8](5ebdac8))
* Optimize DynamoDB online store for improved latency ([#5889](#5889)) ([fcc8274](fcc8274))
soooojinlee pushed a commit to soooojinlee/feast that referenced this pull request Feb 18, 2026
# [0.60.0](feast-dev/feast@v0.59.0...v0.60.0) (2026-02-17)

### Bug Fixes

* Added a flag to correctly download the go binaries ([0f77135](feast-dev@0f77135))
* Adds mapping of date Trino's type into string Feast's type ([531e839](feast-dev@531e839))
* **ci:** Use uv run for pytest in master_only benchmark step ([feast-dev#5957](feast-dev#5957)) ([5096010](feast-dev@5096010))
* Disable materialized odfvs for historical retrieval ([feast-dev#5880](feast-dev#5880)) ([739d28a](feast-dev@739d28a))
* Fix linting and formatting issues ([feast-dev#5907](feast-dev#5907)) ([42ca14a](feast-dev@42ca14a))
* Make timestamp field handling  compatible with Athena V3 ([feast-dev#5936](feast-dev#5936)) ([e2bad34](feast-dev@e2bad34))
* Support pgvector under non-default schema ([feast-dev#5970](feast-dev#5970)) ([c636cd4](feast-dev@c636cd4))
* unit tests not running on main branch ([feast-dev#5909](feast-dev#5909)) ([62fe664](feast-dev@62fe664))
* Update java dep which blocking release ([feast-dev#5903](feast-dev#5903)) ([a5b8186](feast-dev@a5b8186))
* Update the dockerfile with golang 1.24.12. ([feast-dev#5918](feast-dev#5918)) ([be1b522](feast-dev@be1b522))
* Use context.Background() in client constructors ([feast-dev#5897](feast-dev#5897)) ([984f93a](feast-dev@984f93a))

### Features

* Add blog post for PyTorch ecosystem announcement ([feast-dev#5906](feast-dev#5906)) ([d2eb629](feast-dev@d2eb629))
* Add blog post on Feast dbt integration ([feast-dev#5915](feast-dev#5915)) ([b3c8138](feast-dev@b3c8138))
* Add DynamoDB in-place list update support for array-based features ([feast-dev#5916](feast-dev#5916)) ([aa5973f](feast-dev@aa5973f))
* Add HTTP connection pooling for remote online store client ([feast-dev#5895](feast-dev#5895)) ([e022bf8](feast-dev@e022bf8))
* Add integration tests for dbt import ([feast-dev#5899](feast-dev#5899)) ([a444692](feast-dev@a444692))
* Add lazy initialization and feature service caching ([feast-dev#5924](feast-dev#5924)) ([b37b7d0](feast-dev@b37b7d0))
* Add multiple entity support to dbt integration ([feast-dev#5901](feast-dev#5901)) ([05a4fb5](feast-dev@05a4fb5)), closes [feast-dev#5872](feast-dev#5872)
* Add PostgreSQL online store support for Go feature server ([feast-dev#5963](feast-dev#5963)) ([b8c6f3d](feast-dev@b8c6f3d))
* Add publish docker image of Go feature server. ([feast-dev#5923](feast-dev#5923)) ([759d8c6](feast-dev@759d8c6))
* Add Set as feature type ([feast-dev#5888](feast-dev#5888)) ([52458fc](feast-dev@52458fc))
* Added online server worker config support in operator ([feast-dev#5926](feast-dev#5926)) ([193c72a](feast-dev@193c72a))
* Added support for OpenLineage integration ([feast-dev#5884](feast-dev#5884)) ([df70d8d](feast-dev@df70d8d))
* Adjust ray offline store to support abfs(s) ADLS Azure Storage ([feast-dev#5911](feast-dev#5911)) ([d6c0b2d](feast-dev@d6c0b2d))
* Batch_engine config injection in feature_store.yaml through operator ([feast-dev#5938](feast-dev#5938)) ([455d56c](feast-dev@455d56c))
* Consolidate Python packaging - remove setup.py/setup.cfg, standardize on pyproject.toml and uv ([16696b8](feast-dev@16696b8))
* **go:** Add MySQL registry store support for Go feature server ([feast-dev#5933](feast-dev#5933)) ([19f9bb8](feast-dev@19f9bb8))
* Improve local dev experience with file-aware hooks and auto parallelization ([feast-dev#5956](feast-dev#5956)) ([839b79e](feast-dev@839b79e))
* Modernize precommit hooks and optimize test performance ([feast-dev#5929](feast-dev#5929)) ([ea7d4fa](feast-dev@ea7d4fa))
* Optimize container infrastructure for production ([feast-dev#5881](feast-dev#5881)) ([5ebdac8](feast-dev@5ebdac8))
* Optimize DynamoDB online store for improved latency ([feast-dev#5889](feast-dev#5889)) ([fcc8274](feast-dev@fcc8274))

Signed-off-by: soojin <soojin@dable.io>
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