mirror of
https://github.com/gabehf/Koito.git
synced 2026-03-07 21:48:18 -08:00
48 lines
No EOL
1.3 KiB
PL/PgSQL
48 lines
No EOL
1.3 KiB
PL/PgSQL
-- +goose Up
|
|
-- +goose StatementBegin
|
|
SELECT 'up SQL query';
|
|
-- +goose StatementEnd
|
|
ALTER TABLE artist_tracks
|
|
ADD COLUMN is_primary boolean NOT NULL DEFAULT false;
|
|
|
|
ALTER TABLE artist_releases
|
|
ADD COLUMN is_primary boolean NOT NULL DEFAULT false;
|
|
|
|
-- +goose StatementBegin
|
|
CREATE FUNCTION get_artists_for_release(release_id INTEGER)
|
|
RETURNS JSONB AS $$
|
|
SELECT json_agg(
|
|
jsonb_build_object('id', a.id, 'name', a.name)
|
|
ORDER BY ar.is_primary DESC, a.name
|
|
)
|
|
FROM artist_releases ar
|
|
JOIN artists_with_name a ON a.id = ar.artist_id
|
|
WHERE ar.release_id = $1;
|
|
$$ LANGUAGE sql STABLE;
|
|
-- +goose StatementEnd
|
|
|
|
-- +goose StatementBegin
|
|
CREATE FUNCTION get_artists_for_track(track_id INTEGER)
|
|
RETURNS JSONB AS $$
|
|
SELECT json_agg(
|
|
jsonb_build_object('id', a.id, 'name', a.name)
|
|
ORDER BY at.is_primary DESC, a.name
|
|
)
|
|
FROM artist_tracks at
|
|
JOIN artists_with_name a ON a.id = at.artist_id
|
|
WHERE at.track_id = $1;
|
|
$$ LANGUAGE sql STABLE;
|
|
-- +goose StatementEnd
|
|
|
|
-- +goose Down
|
|
-- +goose StatementBegin
|
|
SELECT 'down SQL query';
|
|
-- +goose StatementEnd
|
|
ALTER TABLE artist_tracks
|
|
DROP COLUMN is_primary;
|
|
|
|
ALTER TABLE artist_releases
|
|
DROP COLUMN is_primary;
|
|
|
|
DROP FUNCTION IF EXISTS get_artists_for_release(INTEGER);
|
|
DROP FUNCTION IF EXISTS get_artists_for_track(INTEGER); |