Skip to content

Commit d1c709d

Browse files
Nikhi00718ntkathole
authored andcommitted
fix: Isolate projection join key maps
Signed-off-by: NIKHIL <atnikhil06@gmail.com>
1 parent 01da132 commit d1c709d

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

sdk/python/feast/feature_view_projection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import TYPE_CHECKING, Dict, List, Optional
22

3-
from attr import dataclass
3+
from attr import dataclass, field
44

55
from feast.data_source import DataSource
66
from feast.field import Field
@@ -42,7 +42,7 @@ class FeatureViewProjection:
4242
name_alias: Optional[str]
4343
desired_features: List[str]
4444
features: List[Field]
45-
join_key_map: Dict[str, str] = {}
45+
join_key_map: Dict[str, str] = field(factory=dict)
4646
timestamp_field: Optional[str] = None
4747
date_partition_column: Optional[str] = None
4848
created_timestamp_column: Optional[str] = None

sdk/python/tests/unit/test_feature_service.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,25 @@ def test_prepare_for_apply_keeps_complete_projection():
121121
assert feature_service.feature_view_projections[0] == original_projection
122122

123123

124+
def test_feature_view_projections_have_independent_join_key_maps():
125+
first_projection = FeatureViewProjection(
126+
name="first",
127+
name_alias=None,
128+
desired_features=[],
129+
features=[],
130+
)
131+
second_projection = FeatureViewProjection(
132+
name="second",
133+
name_alias=None,
134+
desired_features=[],
135+
features=[],
136+
)
137+
138+
first_projection.join_key_map["entity_id"] = "aliased_entity_id"
139+
140+
assert second_projection.join_key_map == {}
141+
142+
124143
def test_build_apply_request():
125144
request = FeatureService.build_apply_request(
126145
name="my-feature-service",

0 commit comments

Comments
 (0)