2
SET client_min_messages=ERROR;
5
Collapse DistreoReleaseQueue* into a single table, and add a date_created
6
column while we are at it
9
ALTER TABLE DistroReleaseQueue
10
ADD COLUMN date_created timestamp WITHOUT TIME ZONE
11
DEFAULT (CURRENT_TIMESTAMP AT TIME ZONE 'UTC');
13
ALTER TABLE DistroReleaseQueue
14
ADD COLUMN sourcepackagerelease integer REFERENCES SourcePackageRelease;
16
ALTER TABLE DistroReleaseQueue
17
ADD COLUMN build integer REFERENCES Build;
19
ALTER TABLE DistroReleaseQueue
20
ADD COLUMN customformat integer;
21
ALTER TABLE DistroReleaseQueue
22
ADD COLUMN upload integer REFERENCES LibraryFileAlias;
24
UPDATE DistroReleaseQueue SET date_created = DEFAULT;
25
UPDATE DistroReleaseQueue
26
SET sourcepackagerelease=DistroReleaseQueueSource.sourcepackagerelease
27
FROM DistroReleaseQueueSource
28
WHERE DistroReleaseQueue.id = DistroReleaseQueueSource.distroreleasequeue;
29
UPDATE DistroReleaseQueue
30
SET build=DistroReleaseQueueBuild.build
31
FROM DistroReleaseQueueBuild
32
WHERE DistroReleaseQueue.id = DistroReleaseQueueBuild.distroreleasequeue;
33
UPDATE DistroReleaseQueue
34
SET customformat=custom.customformat, upload=custom.libraryfilealias
35
FROM DistroReleaseQueueCustom AS custom
36
WHERE DistroReleaseQueue.id = custom.distroreleasequeue;
38
ALTER TABLE DistroReleaseQueue ALTER COLUMN date_created SET NOT NULL;
39
ALTER TABLE DistroReleaseQueue ADD CONSTRAINT valid_custom_upload
40
CHECK (customformat IS NULL = upload IS NULL);
41
ALTER TABLE DistroReleaseQueue ADD CONSTRAINT valid_source_upload CHECK (
42
(sourcepackagerelease IS NOT NULL AND build IS NULL AND upload IS NULL) OR
43
(sourcepackagerelease IS NULL AND build IS NOT NULL AND upload IS NULL) OR
44
(sourcepackagerelease IS NULL AND build IS NULL AND upload IS NOT NULL)
47
CREATE INDEX distroreleasequeue__upload__idx ON DistroReleaseQueue(upload)
48
WHERE upload IS NOT NULL;
49
CREATE INDEX distroreleasequeue__status__idx ON DistroReleaseQueue(status);
51
INSERT INTO LaunchpadDatabaseRevision VALUES (40, 44, 0);