Skip to content
Snippets Groups Projects
Unverified Commit 180a4ded authored by github-automation-metabase's avatar github-automation-metabase Committed by GitHub
Browse files

Make delete-all-field-values-for-database a subquery (#49835) (#49857)

* Fixes https://github.com/metabase/metabase/issues/33037



* Align query and fix the linter

Co-authored-by: default avatarLuis Paolini <paoliniluis@gmail.com>
parent 4cb3ff31
No related branches found
No related tags found
No related merge requests found
......@@ -1057,18 +1057,13 @@
(field-values/update-field-values! db))))
{:status :ok})
;; "Discard saved field values" action in db UI
(defn- database->field-values-ids [database-or-id]
(map :id (mdb.query/query {:select [[:fv.id :id]]
:from [[:metabase_fieldvalues :fv]]
:left-join [[:metabase_field :f] [:= :fv.field_id :f.id]
[:metabase_table :t] [:= :f.table_id :t.id]]
:where [:= :t.db_id (u/the-id database-or-id)]})))
(defn- delete-all-field-values-for-database! [database-or-id]
(when-let [field-values-ids (seq (database->field-values-ids database-or-id))]
(t2/query-one {:delete-from :metabase_fieldvalues
:where [:in :id field-values-ids]})))
(t2/query-one {:delete-from :metabase_fieldvalues
:where [:in :field_id
{:select [:f.id]
:from [[:metabase_field :f]]
:right-join [[:metabase_table :t] [:= :f.table_id :t.id]]
:where [:= :t.db_id (u/the-id database-or-id)]}]}))
;; TODO - should this be something like DELETE /api/database/:id/field_values instead?
(api/defendpoint POST "/:id/discard_values"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment