-- Restores the 0028 constraint set. Genre-mix rows would violate it, so they -- go first. DELETE FROM playlists WHERE system_variant = 'genre_mix'; ALTER TABLE playlists DROP CONSTRAINT IF EXISTS playlists_kind_variant_consistent; ALTER TABLE playlists ADD CONSTRAINT playlists_kind_variant_consistent CHECK ( (kind = 'user' AND system_variant IS NULL) OR (kind = 'system' AND system_variant IN ( 'for_you', 'songs_like_artist', 'discover', 'deep_cuts', 'rediscover', 'new_for_you', 'on_this_day', 'first_listens' )) ); ALTER TABLE playlists DROP CONSTRAINT IF EXISTS playlists_seed_consistent; ALTER TABLE playlists ADD CONSTRAINT playlists_seed_consistent CHECK ( (system_variant IS NULL AND seed_artist_id IS NULL) OR (system_variant = 'for_you' AND seed_artist_id IS NULL) OR (system_variant = 'discover' AND seed_artist_id IS NULL) OR (system_variant = 'deep_cuts' AND seed_artist_id IS NULL) OR (system_variant = 'rediscover' AND seed_artist_id IS NULL) OR (system_variant = 'new_for_you' AND seed_artist_id IS NULL) OR (system_variant = 'on_this_day' AND seed_artist_id IS NULL) OR (system_variant = 'first_listens' AND seed_artist_id IS NULL) OR (system_variant = 'songs_like_artist' AND seed_artist_id IS NOT NULL) );