Skip to content

Conversation

@YassinNouh21
Copy link
Contributor

Summary

  • Adds get_table_query_string_with_alias() method to PostgreSQLSource class
  • PostgreSQL requires all subqueries in FROM clauses to have aliases, but get_table_query_string() returns unaliased subqueries
  • New method automatically adds alias for query-based sources while returning plain table names for table-based sources
  • Preserves backward compatibility by keeping existing get_table_query_string() unchanged
  • Adds comprehensive unit tests for the new method

Test Plan

  • Added unit tests for get_table_query_string_with_alias() method
  • Tests cover table-based sources, query-based sources, custom aliases, and SQL syntax validation
  • CI will run full test suite

Fixes #5605

@YassinNouh21 YassinNouh21 requested a review from a team as a code owner January 4, 2026 11:51
@YassinNouh21 YassinNouh21 force-pushed the fix/postgresql-entity-sql-alias-5605 branch 4 times, most recently from c2b0824 to b144441 Compare January 4, 2026 12:16
…aliasing

PostgreSQL requires all subqueries in FROM clauses to have aliases.
This adds a new method get_table_query_string_with_alias() to PostgreSQLSource
that automatically adds an alias when the source is query-based.

The existing get_table_query_string() is preserved for backward compatibility
and updated with documentation explaining when to use the new method.

Fixes feast-dev#5605

Signed-off-by: Yassin Nouh <yassinmnouh@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
@YassinNouh21 YassinNouh21 force-pushed the fix/postgresql-entity-sql-alias-5605 branch from b144441 to 994a632 Compare January 4, 2026 12:24
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
@YassinNouh21
Copy link
Contributor Author

@franciscojavierarceo can u take a look into this ?

Copy link
Member

@franciscojavierarceo franciscojavierarceo left a comment

Choose a reason for hiding this comment

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

nice, it'd be good to have this run an integration test for it but it's fine.

@franciscojavierarceo franciscojavierarceo merged commit 11122ce into feast-dev:master Jan 10, 2026
21 checks passed
@YassinNouh21 YassinNouh21 deleted the fix/postgresql-entity-sql-alias-5605 branch January 10, 2026 01:22
YassinNouh21 added a commit to YassinNouh21/feast that referenced this pull request Jan 10, 2026
…aliasing (feast-dev#5811)

Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
franciscojavierarceo pushed a commit that referenced this pull request Jan 16, 2026
# [0.59.0](v0.58.0...v0.59.0) (2026-01-16)

### Bug Fixes

* Add get_table_query_string_with_alias() for PostgreSQL subquery aliasing ([#5811](#5811)) ([11122ce](11122ce))
* Add hybrid online store to ONLINE_STORE_CLASS_FOR_TYPE mapping ([#5810](#5810)) ([678589b](678589b))
* Add possibility to overwrite send_receive_timeout for clickhouse offline store ([#5792](#5792)) ([59dbb33](59dbb33))
* Denial by default to all resources when no permissions set  ([#5663](#5663)) ([1524f1c](1524f1c))
* Make operator include full OIDC secret in repo config ([#5676](#5676)) ([#5809](#5809)) ([a536bc2](a536bc2))
* Populate Postgres `registry.path` during `feast init` ([#5785](#5785)) ([f293ae8](f293ae8))
* **redis:** Preserve millisecond timestamp precision for Redis online store ([#5807](#5807)) ([9e3f213](9e3f213))
* Search API to return all matching tags in matched_tags field ([#5843](#5843)) ([de37f66](de37f66))
* Spark Materialization Engine Cannot Infer Schema ([#5806](#5806)) ([58d0325](58d0325)), closes [#5594](#5594) [#5594](#5594)
* Support arro3 table schema with newer deltalake packages ([#5799](#5799)) ([103c5e9](103c5e9))
* Timestamp formatting and lakehouse-type connector for trino_offline_store. ([#5846](#5846)) ([c2ea7e9](c2ea7e9))
* Update model_validator to use instance method signature (Pydantic v2.12 deprecation) ([#5825](#5825)) ([3c10b6e](3c10b6e))

### Features

* Add dbt integration for importing models as FeatureViews ([#5827](#5827)) ([b997361](b997361)), closes [#3335](#3335) [#3335](#3335) [#3335](#3335)
* Add GCS registry store in Go feature server ([#5818](#5818)) ([1dc2be5](1dc2be5))
* Add progress bar to CLI from feast apply ([#5867](#5867)) ([ab3562b](ab3562b))
* Add RBAC blog post to website ([#5861](#5861)) ([b1844a3](b1844a3))
* Add skip_feature_view_validation parameter to FeatureStore.apply() and plan() ([#5859](#5859)) ([5482a0e](5482a0e))
* Added batching to feature server /push to offline store ([#5683](#5683)) ([#5729](#5729)) ([ce35ce6](ce35ce6))
* Enable static artifacts for feature server that can be used in Feature Transformations ([#5787](#5787)) ([edefc3f](edefc3f))
* Improve lambda materialization engine ([#5829](#5829)) ([f6116f9](f6116f9))
* Offline Store historical features retrieval based on datetime range in Ray ([#5738](#5738)) ([e484c12](e484c12))
* Read, Save docs and chat fixes ([#5865](#5865)) ([2081b55](2081b55))
* Resolve pyarrow >21 installation with ibis-framework ([#5847](#5847)) ([8b9bb50](8b9bb50))
* Support staging for spark materialization ([#5671](#5671)) ([#5797](#5797)) ([5b787af](5b787af))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Entity SQL does not work as documented with PostgreSQL Offline Store

2 participants