Skip to content

Commit a61b93c

Browse files
EXPEbdodlaBhargav Dodla
andauthored
fix: Populates project created_time correctly according to created ti… (#4686)
fix: Populates project created_time correctly according to created time in feast_metadata table Signed-off-by: Bhargav Dodla <[email protected]> Co-authored-by: Bhargav Dodla <[email protected]>
1 parent c98c806 commit a61b93c

File tree

1 file changed

+16
-5
lines changed
  • sdk/python/feast/infra/registry

1 file changed

+16
-5
lines changed

sdk/python/feast/infra/registry/sql.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -281,15 +281,17 @@ def __init__(
281281
)
282282

283283
def _sync_feast_metadata_to_projects_table(self):
284-
feast_metadata_projects: set = []
284+
feast_metadata_projects: dict = {}
285285
projects_set: set = []
286286
with self.read_engine.begin() as conn:
287287
stmt = select(feast_metadata).where(
288288
feast_metadata.c.metadata_key == FeastMetadataKeys.PROJECT_UUID.value
289289
)
290290
rows = conn.execute(stmt).all()
291291
for row in rows:
292-
feast_metadata_projects.append(row._mapping["project_id"])
292+
feast_metadata_projects[row._mapping["project_id"]] = int(
293+
row._mapping["last_updated_timestamp"]
294+
)
293295

294296
if len(feast_metadata_projects) > 0:
295297
with self.read_engine.begin() as conn:
@@ -299,9 +301,17 @@ def _sync_feast_metadata_to_projects_table(self):
299301
projects_set.append(row._mapping["project_id"])
300302

301303
# Find object in feast_metadata_projects but not in projects
302-
projects_to_sync = set(feast_metadata_projects) - set(projects_set)
304+
projects_to_sync = set(feast_metadata_projects.keys()) - set(projects_set)
303305
for project_name in projects_to_sync:
304-
self.apply_project(Project(name=project_name), commit=True)
306+
self.apply_project(
307+
Project(
308+
name=project_name,
309+
created_timestamp=datetime.fromtimestamp(
310+
feast_metadata_projects[project_name], tz=timezone.utc
311+
),
312+
),
313+
commit=True,
314+
)
305315

306316
if self.purge_feast_metadata:
307317
with self.write_engine.begin() as conn:
@@ -976,7 +986,8 @@ def _apply_object(
976986
if hasattr(obj_proto, "meta") and hasattr(
977987
obj_proto.meta, "created_timestamp"
978988
):
979-
obj_proto.meta.created_timestamp.FromDatetime(update_datetime)
989+
if not obj_proto.meta.HasField("created_timestamp"):
990+
obj_proto.meta.created_timestamp.FromDatetime(update_datetime)
980991

981992
values = {
982993
id_field_name: name,

0 commit comments

Comments
 (0)