Skip to content

Commit

Permalink
Update dao.py
Browse files Browse the repository at this point in the history
  • Loading branch information
john-bodley authored Jul 25, 2022
1 parent 24690ef commit 22498db
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions superset/datasets/dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,10 +154,10 @@ def update(
"""

if "columns" in properties:
cls.update_columns(model, properties.pop("columns"))
cls.update_columns(model, properties.pop("columns"), commit=commit)

if "metrics" in properties:
cls.update_metrics(model, properties.pop("metrics"))
cls.update_metrics(model, properties.pop("metrics"), commit=commit)

return super().update(model, properties, commit=commit)

Expand All @@ -166,6 +166,7 @@ def update_columns(
cls,
model: SqlaTable,
property_columns: List[Dict[str, Any]],
commit: bool = True,
) -> None:
"""
Creates/updates and/or deletes a list of columns, based on a
Expand Down Expand Up @@ -198,11 +199,15 @@ def update_columns(
for id_ in {obj.id for obj in model.columns} - seen:
DatasetDAO.delete_column(column_by_id[id_], commit=False)

if commit:
db.session.commit()

@classmethod
def update_metrics(
cls,
model: SqlaTable,
property_metrics: List[Dict[str, Any]],
commit: bool = True,
) -> None:
"""
Creates/updates and/or deletes a list of metrics, based on a
Expand Down Expand Up @@ -235,6 +240,9 @@ def update_metrics(
for id_ in {obj.id for obj in model.metrics} - seen:
DatasetDAO.delete_column(metric_by_id[id_], commit=False)

if commit:
db.session.commit()

@classmethod
def find_dataset_column(
cls, dataset_id: int, column_id: int
Expand Down

0 comments on commit 22498db

Please sign in to comment.