Merge ~pappacena/launchpad:oci-bug-indexes-backport into launchpad:master

Proposed by Thiago F. Pappacena
Status: Merged
Approved by: Thiago F. Pappacena
Approved revision: 08f4e27cf0300032e74795496fb1cba7c2b2d8ac
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~pappacena/launchpad:oci-bug-indexes-backport
Merge into: launchpad:master
Diff against target: 141 lines (+135/-0)
1 file modified
database/schema/patch-2210-22-1.sql (+135/-0)
Reviewer Review Type Date Requested Status
Thiago F. Pappacena (community) Approve
Review via email: mp+401488@code.launchpad.net

Commit message

Backporting OCI bug support indexes creation from db-devel (already applied in prod)

To post a comment you must log in.
Revision history for this message
Thiago F. Pappacena (pappacena) wrote :

Self-approving already applied db patch (already available in db-devel).

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/database/schema/patch-2210-22-1.sql b/database/schema/patch-2210-22-1.sql
2new file mode 100644
3index 0000000..7f4cedd
4--- /dev/null
5+++ b/database/schema/patch-2210-22-1.sql
6@@ -0,0 +1,135 @@
7+-- Copyright 2020 Canonical Ltd. This software is licensed under the
8+-- GNU Affero General Public License version 3 (see the file LICENSE).
9+
10+SET client_min_messages=ERROR;
11+
12+-- Validate check constraint.
13+ALTER TABLE BugTask VALIDATE CONSTRAINT bugtask_assignment_checks;
14+
15+ALTER TABLE BugSummary VALIDATE CONSTRAINT bugtask_assignment_checks;
16+
17+-- BugTask indexes.
18+CREATE UNIQUE INDEX bugtask__ociproject__bug__key
19+ ON BugTask (ociproject, bug)
20+ WHERE ociproject IS NOT NULL;
21+CREATE UNIQUE INDEX bugtask__ociprojectseries__bug__key
22+ ON BugTask (ociprojectseries, bug)
23+ WHERE ociprojectseries IS NOT NULL;
24+
25+-- BugTaskFlat indexes.
26+CREATE INDEX bugtaskflat__ociproject__bug__idx
27+ ON BugTaskFlat (ociproject, bug)
28+ WHERE ociproject IS NOT NULL;
29+CREATE INDEX bugtaskflat__ociproject__date_closed__bug__idx
30+ ON BugTaskFlat (ociproject, date_closed, bug DESC)
31+ WHERE ociproject IS NOT NULL;
32+CREATE INDEX bugtaskflat__ociproject__date_last_updated__idx
33+ ON BugTaskFlat (ociproject, date_last_updated)
34+ WHERE ociproject IS NOT NULL;
35+CREATE INDEX bugtaskflat__ociproject__datecreated__idx
36+ ON BugTaskFlat (ociproject, datecreated)
37+ WHERE ociproject IS NOT NULL;
38+CREATE INDEX bugtaskflat__ociproject__heat__bug__idx
39+ ON BugTaskFlat (ociproject, heat, bug DESC)
40+ WHERE ociproject IS NOT NULL;
41+CREATE INDEX bugtaskflat__ociproject__importance__bug__idx
42+ ON BugTaskFlat (ociproject, importance, bug DESC)
43+ WHERE ociproject IS NOT NULL;
44+CREATE INDEX bugtaskflat__ociproject__latest_patch_uploaded__bug__idx
45+ ON BugTaskFlat (ociproject, latest_patch_uploaded, bug DESC)
46+ WHERE ociproject IS NOT NULL;
47+CREATE INDEX bugtaskflat__ociproject__status__bug__idx
48+ ON BugTaskFlat (ociproject, status, bug DESC)
49+ WHERE ociproject IS NOT NULL;
50+
51+CREATE INDEX bugtaskflat__ociprojectseries__bug__idx
52+ ON BugTaskFlat (ociprojectseries, bug)
53+ WHERE ociprojectseries IS NOT NULL;
54+CREATE INDEX bugtaskflat__ociprojectseries__date_closed__bug__idx
55+ ON BugTaskFlat (ociprojectseries, date_closed, bug DESC)
56+ WHERE ociprojectseries IS NOT NULL;
57+CREATE INDEX bugtaskflat__ociprojectseries__date_last_updated__idx
58+ ON BugTaskFlat (ociprojectseries, date_last_updated)
59+ WHERE ociprojectseries IS NOT NULL;
60+CREATE INDEX bugtaskflat__ociprojectseries__datecreated__idx
61+ ON BugTaskFlat (ociprojectseries, datecreated)
62+ WHERE ociprojectseries IS NOT NULL;
63+CREATE INDEX bugtaskflat__ociprojectseries__heat__bug__idx
64+ ON BugTaskFlat (ociprojectseries, heat, bug DESC)
65+ WHERE ociprojectseries IS NOT NULL;
66+CREATE INDEX bugtaskflat__ociprojectseries__importance__bug__idx
67+ ON BugTaskFlat (ociprojectseries, importance, bug DESC)
68+ WHERE ociprojectseries IS NOT NULL;
69+CREATE INDEX bugtaskflat__ociprojectseries__latest_patch_uploaded__bug__idx
70+ ON BugTaskFlat (ociprojectseries, latest_patch_uploaded, bug DESC)
71+ WHERE ociprojectseries IS NOT NULL;
72+CREATE INDEX bugtaskflat__ociprojectseries__status__bug__idx
73+ ON BugTaskFlat (ociprojectseries, status, bug DESC)
74+ WHERE ociprojectseries IS NOT NULL;
75+
76+
77+-- BugSummary indexes.
78+CREATE INDEX bugsummary__ociproject__idx
79+ ON BugSummary (ociproject)
80+ WHERE ociproject IS NOT NULL;
81+CREATE INDEX bugsummary__ociprojectseries__idx
82+ ON BugSummary (ociprojectseries)
83+ WHERE ociprojectseries IS NOT NULL;
84+
85+
86+-- Replacing previously renamed indexes.
87+CREATE UNIQUE INDEX bugtask_distinct_sourcepackage_assignment
88+ ON BugTask (
89+ bug,
90+ COALESCE(sourcepackagename, -1),
91+ COALESCE(distroseries, -1),
92+ COALESCE(distribution, -1)
93+ )
94+ WHERE
95+ product IS NULL
96+ AND productseries IS NULL
97+ AND ociproject IS NULL
98+ AND ociprojectseries IS NULL;
99+DROP INDEX old__bugtask_distinct_sourcepackage_assignment;
100+
101+
102+CREATE UNIQUE INDEX bugtask__product__bug__key
103+ ON BugTask (product, bug)
104+ WHERE
105+ product IS NOT NULL
106+ AND ociproject IS NULL
107+ AND ociprojectseries IS NULL;
108+DROP INDEX old__bugtask__product__bug__key;
109+
110+
111+CREATE UNIQUE INDEX bugsummary__unique
112+ ON BugSummary (
113+ COALESCE(product, -1),
114+ COALESCE(productseries, -1),
115+ COALESCE(distribution, -1),
116+ COALESCE(distroseries, -1),
117+ COALESCE(sourcepackagename, -1),
118+ COALESCE(ociproject, -1),
119+ COALESCE(ociprojectseries, -1),
120+ status,
121+ importance,
122+ has_patch,
123+ COALESCE(tag, ''::text),
124+ COALESCE(milestone, -1),
125+ COALESCE(viewed_by, -1),
126+ COALESCE(access_policy, -1)
127+ );
128+DROP INDEX old__bugsummary__unique;
129+
130+
131+CREATE INDEX bugsummaryjournal__full__idx
132+ ON BugSummaryJournal (
133+ status, product, productseries, distribution, distroseries,
134+ sourcepackagename, ociproject, ociprojectseries, viewed_by, milestone,
135+ tag
136+ );
137+
138+DROP INDEX old__bugsummaryjournal__full__idx;
139+
140+
141+INSERT INTO LaunchpadDatabaseRevision VALUES (2210, 22, 1);