From e1b66511355518d36d8dee8dca96f68830640417 Mon Sep 17 00:00:00 2001 From: Dmitry Chepurovskiy Date: Sun, 2 Aug 2020 14:27:36 +0300 Subject: [PATCH] Added deletion of labels metadata on release deletion Signed-off-by: Dmitry Chepurovskiy --- pkg/storage/driver/sql.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/pkg/storage/driver/sql.go b/pkg/storage/driver/sql.go index 6d2b90592..0c3274c82 100644 --- a/pkg/storage/driver/sql.go +++ b/pkg/storage/driver/sql.go @@ -152,7 +152,7 @@ func (s *SQL) ensureDBSetup() error { }, { Id: "labels", - Up: []string{"CREATE TABLE labels (release_key VARCHAR(67), key VARCHAR(64), value VARCHAR(67));"}, + Up: []string{"CREATE TABLE labels (release_key VARCHAR(67), release_namespace VARCHAR(67), key VARCHAR(64), value VARCHAR(67));"}, Down: []string{"DELETE TABLE labels;"}, }, }, @@ -410,11 +410,13 @@ func (s *SQL) Create(key string, rls *rspb.Release) error { Insert("labels"). Columns( "release_key", + "release_namespace", "key", "value", ). Values( key, + namespace, lk, lv, ).ToSql() @@ -516,10 +518,25 @@ func (s *SQL) Delete(key string) (*rspb.Release, error) { Where(sq.Eq{sqlReleaseTableNamespaceColumn: s.namespace}). ToSql() if err != nil { - s.Log("failed to build select query: %v", err) + s.Log("failed to build delete query: %v", err) + return nil, err + } + + if _, err = transaction.Exec(deleteQuery, args...); err != nil { + return release, err + } + + deleteLabelsQuery, args, err := s.statementBuilder. + Delete("labels"). + Where(sq.Eq{"release_key": key}). + Where(sq.Eq{"release_namespace": s.namespace}). + ToSql() + + if err != nil { + s.Log("failed to build delete labels query: %v", err) return nil, err } - _, err = transaction.Exec(deleteQuery, args...) + _, err = transaction.Exec(deleteLabelsQuery, args...) return release, err }