Merge lp:~andrea.corbellini/launchpad/blueprint-comments-part2 into lp:launchpad/db-devel

Proposed by Andrea Corbellini
Status: Merged
Merged at revision: not available
Proposed branch: lp:~andrea.corbellini/launchpad/blueprint-comments-part2
Merge into: lp:launchpad/db-devel
Diff against target: None lines
To merge this branch: bzr merge lp:~andrea.corbellini/launchpad/blueprint-comments-part2
Reviewer Review Type Date Requested Status
Eleanor Berger (community) code Approve
Review via email: mp+9845@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Andrea Corbellini (andrea.corbellini) wrote :

= Summary =

Bug #49698 is about giving the ability to comment on specifications.

== Proposed fix ==

This branch contains the interfaces and model changes needed.
Database schema changes can be found in
lp:~andrea-bs/launchpad/blueprint-comments-part1.

I've added two new interfaces: ISpecificationMessage and
ISpecificationMessageSet, following the bug comments' code.

== Pre-implementation notes ==

I discussed this part of the bug fix with intellectronica. He told me which
packages I had to modify and which classes I needed to write.

== Implementation details ==

lib/lp/blueprints/interfaces/specificationmessage.py:
 * Add ISpecificationMessage that represents a blueprint comment.
 * Add ISpecificationMessageSet, a set of all blueprint comments.

lib/lp/blueprints/model/specificationmessage.py:
 * Implement ISpecificationMessage and ISpecificationMessageSet.

lib/lp/blueprints/configure.zcml:
 * Add the configuration for the two new interfaces.

lib/lp/blueprints/doc/specificationmessage.txt:
 * Test comment creation and retrieval.

== Tests ==

bin/test -vv -t specificationmessage

== Demo and Q/A ==

There isn't a UI yet, so the only way to try the changes is using the doc
test.

= Launchpad lint =

Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.

Linting changed files:
  lib/lp/blueprints/configure.zcml
  lib/lp/blueprints/doc/specificationmessage.txt
  lib/lp/blueprints/interfaces/specificationmessage.py
  lib/lp/blueprints/model/specificationmessage.py

Revision history for this message
Eleanor Berger (intellectronica) wrote :
Download full text (7.5 KiB)

(Here's the correct diff)

=== modified file 'lib/lp/blueprints/configure.zcml'
--- lib/lp/blueprints/configure.zcml 2009-07-13 18:15:02 +0000
+++ lib/lp/blueprints/configure.zcml 2009-08-10 09:34:05 +0000
@@ -219,6 +219,28 @@
             <allow
                 interface="lp.blueprints.interfaces.specification.ISpecificationDelta"/>
         </class>
+
+ <!-- SpecificationMessage -->
+
+ <class
+ class="lp.blueprints.model.specificationmessage.SpecificationMessage">
+ <allow
+ interface="lp.blueprints.interfaces.specificationmessage.ISpecificationMessage"/>
+ </class>
+
+ <!-- SpecificationMessageSet -->
+
+ <class
+ class="lp.blueprints.model.specificationmessage.SpecificationMessageSet">
+ <allow
+ interface="lp.blueprints.interfaces.specificationmessage.ISpecificationMessageSet"/>
+ </class>
+ <securedutility
+ class="lp.blueprints.model.specificationmessage.SpecificationMessageSet"
+ provides="lp.blueprints.interfaces.specificationmessage.ISpecificationMessageSet">
+ <allow
+ interface="lp.blueprints.interfaces.specificationmessage.ISpecificationMessageSet"/>
+ </securedutility>
     </facet>
     <subscriber
         for="lp.blueprints.interfaces.specification.ISpecification lazr.lifecycle.interfaces.IObjectModifiedEvent"

=== added file 'lib/lp/blueprints/doc/specificationmessage.txt'
--- lib/lp/blueprints/doc/specificationmessage.txt 1970-01-01 00:00:00 +0000
+++ lib/lp/blueprints/doc/specificationmessage.txt 2009-08-10 09:34:05 +0000
@@ -0,0 +1,38 @@
+= Specification Messages =
+
+Specification messages are messages associated with blueprints. A specifiction
+message is described by the ISpecificationMessage interface.
+
+One IMessage can be associated with many ISpecification, but one
+ISpecificationMessage is always associated with exactly one specification.
+
+ >>> from lp.blueprints.interfaces.specification import ISpecificationSet
+ >>> from lp.blueprints.interfaces.specificationmessage import (
+ ... ISpecificationMessageSet)
+ >>> specset = getUtility(ISpecificationSet)
+ >>> specmessageset = getUtility(ISpecificationMessageSet)
+
+== Creating specification messages ==
+
+To create a specification message, use ISpecificationMessageSet.createMessage:
+
+ >>> from canonical.launchpad.interfaces import IPersonSet
+ >>> sample_person = getUtility(IPersonSet).get(12)
+ >>> spec = specset.getByURL('http://developer.mozilla.org/en/docs/SVG')
+ >>> test_message = specmessageset.createMessage(
+ ... subject="test message subject",
+ ... content="text message content",
+ ... owner=sample_person,
+ ... spec=spec)
+ >>> test_message.message.subject
+ u'test message subject'
+
+== Retrieving specification messages ==
+
+ISpecificationMessageSet represents the set of all ISpecificationMessages in
+the system. An individual ISpecificationMessage can be retrieved with
+ISpecificationMessageSet.get:
+
+ >>> specmessage_one = specmessageset.get(1)
+ >>> specmessage_on...

Read more...

Revision history for this message
Eleanor Berger (intellectronica) wrote :
Download full text (9.1 KiB)

Hi Andrea,

Thanks again for working on this. Your branch looks very good and is almost ready to land. There are a few things I'd like you to fix, and I also have a couple of questions, so I'm marking this Needs Fixing for now, but it should be very easy to fix.

> === modified file 'lib/lp/blueprints/configure.zcml'
> --- lib/lp/blueprints/configure.zcml 2009-07-13 18:15:02 +0000
> +++ lib/lp/blueprints/configure.zcml 2009-08-10 09:34:05 +0000
> @@ -219,6 +219,28 @@
> <allow
> interface="lp.blueprints.interfaces.specification.ISpecificationDelta"/>
> </class>
> +
> + <!-- SpecificationMessage -->
> +
> + <class
> +
> class="lp.blueprints.model.specificationmessage.SpecificationMessage">
> + <allow
> + interface="lp.blueprints.interfaces.specificationmessage.ISpe
> cificationMessage"/>
> + </class>
> +
> + <!-- SpecificationMessageSet -->
> +
> + <class
> +
> class="lp.blueprints.model.specificationmessage.SpecificationMessageSet">
> + <allow
> + interface="lp.blueprints.interfaces.specificationmessage.ISpe
> cificationMessageSet"/>
> + </class>
> + <securedutility
> +
> class="lp.blueprints.model.specificationmessage.SpecificationMessageSet"
> + provides="lp.blueprints.interfaces.specificationmessage.ISpecific
> ationMessageSet">
> + <allow
> + interface="lp.blueprints.interfaces.specificationmessage.ISpe
> cificationMessageSet"/>
> + </securedutility>
> </facet>
> <subscriber
> for="lp.blueprints.interfaces.specification.ISpecification
> lazr.lifecycle.interfaces.IObjectModifiedEvent"
>
> === added file 'lib/lp/blueprints/doc/specificationmessage.txt'
> --- lib/lp/blueprints/doc/specificationmessage.txt 1970-01-01 00:00:00
> +0000
> +++ lib/lp/blueprints/doc/specificationmessage.txt 2009-08-10 09:34:05
> +0000
> @@ -0,0 +1,38 @@
> += Specification Messages =
> +
> +Specification messages are messages associated with blueprints. A specifiction
> +message is described by the ISpecificationMessage interface.

Narrative in doctests should wrap around 72 characters.

> +
> +One IMessage can be associated with many ISpecification, but one
> +ISpecificationMessage is always associated with exactly one specification.

That's techincally true, but I don't think very relevant. You will never want
to do that, so I think this bit can be removed.

> +
> + >>> from lp.blueprints.interfaces.specification import ISpecificationSet
> + >>> from lp.blueprints.interfaces.specificationmessage import (
> + ... ISpecificationMessageSet)
> + >>> specset = getUtility(ISpecificationSet)
> + >>> specmessageset = getUtility(ISpecificationMessageSet)

It's a bit odd to do this assignment at the end of a test (though I understand
why you did it). I think it's better to merge the code part of this section
with the next one.

> +

Please add an extra blank line between sections (so there are two blank lines).

> +== Creating specification messages ==
> +
> +To create a specification message, use
> ISpecificationMessageSet.createMessage:
> +
> + >>> fr...

Read more...

review: Needs Fixing (code)
Revision history for this message
Andrea Corbellini (andrea.corbellini) wrote :
Download full text (5.8 KiB)

Thank you for your review.

Most of the errors that you have reported can be also found in
bugmessage. Should I fix them in a separate branch?

> > +# pylint: disable-msg=E0211,E0213
>
> Why are you disabling these lint messages?

I'm disabling E0213 because it says:

  Method should have "self" as first argument

> > + messageID = Int(title=u"The message id.", readonly=True)
>
> Why is this attribute needed? We only very rarely need to work with IDs. Normally
> Storm should take care of references for us.

I've included it because I saw that it is used in IBugMessage and in
ICodeReviewComment.

Here's the incremental diff:

=== modified file 'lib/lp/blueprints/doc/specificationmessage.txt'
--- lib/lp/blueprints/doc/specificationmessage.txt 2009-08-07 18:24:33
+0000
+++ lib/lp/blueprints/doc/specificationmessage.txt 2009-08-10 12:34:20
+0000
@@ -1,24 +1,26 @@
 = Specification Messages =

-Specification messages are messages associated with blueprints. A
specifiction
-message is described by the ISpecificationMessage interface.
-
-One IMessage can be associated with many ISpecification, but one
-ISpecificationMessage is always associated with exactly one
specification.
-
- >>> from lp.blueprints.interfaces.specification import
ISpecificationSet
+Specification messages are messages associated with blueprints. A
+specifiction message is described by the ISpecificationMessage
+interface.
+
+
+== Creating specification messages ==
+
+To create a specification message, use
+ISpecificationMessageSet.createMessage:
+
+ >>> from lp.blueprints.interfaces.specification import (
+ ... ISpecificationSet)
     >>> from lp.blueprints.interfaces.specificationmessage import (
     ... ISpecificationMessageSet)
     >>> specset = getUtility(ISpecificationSet)
     >>> specmessageset = getUtility(ISpecificationMessageSet)

-== Creating specification messages ==
-
-To create a specification message, use
ISpecificationMessageSet.createMessage:
-
     >>> from canonical.launchpad.interfaces import IPersonSet
     >>> sample_person = getUtility(IPersonSet).get(12)
- >>> spec =
specset.getByURL('http://developer.mozilla.org/en/docs/SVG')
+ >>> spec = specset.getByURL(
+ ... 'http://developer.mozilla.org/en/docs/SVG')
     >>> test_message = specmessageset.createMessage(
     ... subject="test message subject",
     ... content="text message content",
@@ -27,10 +29,11 @@
     >>> test_message.message.subject
     u'test message subject'

+
 == Retrieving specification messages ==

-ISpecificationMessageSet represents the set of all
ISpecificationMessages in
-the system. An individual ISpecificationMessage can be retrieved with
+ISpecificationMessageSet represents the set of all messages in the
+system. An individual ISpecificationMessage can be retrieved with
 ISpecificationMessageSet.get:

     >>> specmessage_one = specmessageset.get(1)

=== modified file 'lib/lp/blueprints/interfaces/specificationmessage.py'
--- lib/lp/blueprints/interfaces/specificationmessage.py 2009-08-07
16:27:15 +0000
+++ lib/lp/blueprints/interfaces/specificationmessage.py 2009-08-10
12:34:20 +0000
@@ -1,7 +1,7 @@
 # Copyright 2009 Canonical ...

Read more...

Revision history for this message
Eleanor Berger (intellectronica) wrote :
Download full text (6.5 KiB)

> Thank you for your review.
>
> Most of the errors that you have reported can be also found in
> bugmessage. Should I fix them in a separate branch?
>
> > > +# pylint: disable-msg=E0211,E0213
> >
> > Why are you disabling these lint messages?
>
> I'm disabling E0213 because it says:
>
> Method should have "self" as first argument

OK, sorry, this was a stupid question :-/ These are disabled in all interfaces for obvious reasons.

>
> > > + messageID = Int(title=u"The message id.", readonly=True)
> >
> > Why is this attribute needed? We only very rarely need to work with IDs.
> Normally
> > Storm should take care of references for us.
>
> I've included it because I saw that it is used in IBugMessage and in
> ICodeReviewComment.

I think you should avoid it unless you have no choice. This trick is used elsewhere for optimization, but as long as you don't have at least one call-site you shouldn't include this.

>
>
> Here's the incremental diff:
>
> === modified file 'lib/lp/blueprints/doc/specificationmessage.txt'
> --- lib/lp/blueprints/doc/specificationmessage.txt 2009-08-07 18:24:33
> +0000
> +++ lib/lp/blueprints/doc/specificationmessage.txt 2009-08-10 12:34:20
> +0000
> @@ -1,24 +1,26 @@
> = Specification Messages =
>
> -Specification messages are messages associated with blueprints. A
> specifiction
> -message is described by the ISpecificationMessage interface.
> -
> -One IMessage can be associated with many ISpecification, but one
> -ISpecificationMessage is always associated with exactly one
> specification.
> -
> - >>> from lp.blueprints.interfaces.specification import
> ISpecificationSet
> +Specification messages are messages associated with blueprints. A
> +specifiction message is described by the ISpecificationMessage
> +interface.
> +
> +
> +== Creating specification messages ==
> +
> +To create a specification message, use
> +ISpecificationMessageSet.createMessage:
> +
> + >>> from lp.blueprints.interfaces.specification import (
> + ... ISpecificationSet)
> >>> from lp.blueprints.interfaces.specificationmessage import (
> ... ISpecificationMessageSet)
> >>> specset = getUtility(ISpecificationSet)
> >>> specmessageset = getUtility(ISpecificationMessageSet)
>
> -== Creating specification messages ==
> -
> -To create a specification message, use
> ISpecificationMessageSet.createMessage:
> -
> >>> from canonical.launchpad.interfaces import IPersonSet
> >>> sample_person = getUtility(IPersonSet).get(12)
> - >>> spec =
> specset.getByURL('http://developer.mozilla.org/en/docs/SVG')
> + >>> spec = specset.getByURL(
> + ... 'http://developer.mozilla.org/en/docs/SVG')
> >>> test_message = specmessageset.createMessage(
> ... subject="test message subject",
> ... content="text message content",
> @@ -27,10 +29,11 @@
> >>> test_message.message.subject
> u'test message subject'
>
> +
> == Retrieving specification messages ==
>
> -ISpecificationMessageSet represents the set of all
> ISpecificationMessages in
> -the system. An individual ISpecificationMessage can be retrieved with
> +ISpecificationMessageSet represents the ...

Read more...

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cronscripts/rosetta-approve-imports.py'
2--- cronscripts/rosetta-approve-imports.py 2009-07-17 00:26:05 +0000
3+++ cronscripts/rosetta-approve-imports.py 2009-08-04 09:24:21 +0000
4@@ -26,7 +26,7 @@
5
6 if __name__ == '__main__':
7 script = RosettaImportApprover('rosetta-approve-imports',
8- dbuser=config.poimport.dbuser)
9+ dbuser='poimportapprover')
10 script.lock_or_quit()
11 try:
12 script.run()
13
14=== modified file 'database/schema/Makefile'
15--- database/schema/Makefile 2009-08-04 11:07:08 +0000
16+++ database/schema/Makefile 2009-08-04 22:16:48 +0000
17@@ -57,14 +57,15 @@
18
19
20 # The latest schema dump from production. Database patches are relative
21-# to this baseline. This dump should be updated every production rollout
22+# to this baseline. This dump should be updated occasionally from production
23 # to ensure that the development database remains in sync with reality
24 # on production. It is generated using newbaseline.py in
25 # bzr+ssh://devpad.canonical.com/code/stub/dbascripts
26 #
27-REV=2109
28+REV=2207
29 BASELINE=launchpad-${REV}-00-0.sql
30-MD5SUM=8a2e8fb0c3665cf1b07487fe3650816e launchpad-2109-00-0.sql
31+MD5SUM=6a28c01a33ee2dc133ab4f8931d94282 launchpad-2207-00-0.sql
32+
33 default: all
34
35 # Create a launchpad_ftest_template DB and load the test sample data into it.
36@@ -107,7 +108,7 @@
37 # database schema, full text indexes and grants into it.
38 # It will also create session DBs for the test and dev environments.
39 # No sample data is added at this point.
40-create: check
41+create:
42 @ echo "* If this fails you need to run as the postgresql superuser"
43 @ echo "* eg. sudo -u postgres make create"
44 @ echo
45
46=== renamed file 'database/schema/launchpad-2109-00-0.sql' => 'database/schema/launchpad-2207-00-0.sql'
47--- database/schema/launchpad-2109-00-0.sql 2008-10-06 04:17:49 +0000
48+++ database/schema/launchpad-2207-00-0.sql 2009-07-27 08:11:44 +0000
49@@ -1,4 +1,7 @@
50--- Generated Tue Sep 23 11:46:25 2008 UTC
51+-- Copyright 2009 Canonical Ltd. This software is licensed under the
52+-- GNU Affero General Public License version 3 (see the file LICENSE).
53+
54+-- Generated Mon Jul 27 08:43:04 2009 UTC
55
56 SET client_min_messages TO ERROR;
57
58@@ -11,10 +14,51 @@
59
60 SET search_path = public, pg_catalog;
61
62+CREATE TYPE pgstattuple_type AS (
63+ table_len bigint,
64+ tuple_count bigint,
65+ tuple_len bigint,
66+ tuple_percent double precision,
67+ dead_tuple_count bigint,
68+ dead_tuple_len bigint,
69+ dead_tuple_percent double precision,
70+ free_space bigint,
71+ free_percent double precision
72+);
73+
74 SET default_tablespace = '';
75
76 SET default_with_oids = false;
77
78+CREATE TABLE revision (
79+ id integer NOT NULL,
80+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
81+ log_body text NOT NULL,
82+ revision_author integer NOT NULL,
83+ gpgkey integer,
84+ revision_id text NOT NULL,
85+ revision_date timestamp without time zone,
86+ karma_allocated boolean DEFAULT false
87+);
88+ALTER TABLE ONLY revision ALTER COLUMN revision_author SET STATISTICS 500;
89+ALTER TABLE ONLY revision ALTER COLUMN revision_date SET STATISTICS 500;
90+
91+CREATE FUNCTION pgstattuple(text) RETURNS pgstattuple_type
92+ AS '$libdir/pgstattuple', 'pgstattuple'
93+ LANGUAGE c STRICT;
94+
95+CREATE FUNCTION pgstattuple(oid) RETURNS pgstattuple_type
96+ AS '$libdir/pgstattuple', 'pgstattuplebyid'
97+ LANGUAGE c STRICT;
98+
99+CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler
100+ AS '$libdir/plpgsql', 'plpgsql_call_handler'
101+ LANGUAGE c;
102+
103+CREATE FUNCTION plpython_call_handler() RETURNS language_handler
104+ AS '$libdir/plpython', 'plpython_call_handler'
105+ LANGUAGE c;
106+
107 CREATE TABLE account (
108 id integer NOT NULL,
109 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
110@@ -27,12 +71,31 @@
111 old_openid_identifier text
112 );
113
114+CREATE SEQUENCE account_id_seq
115+ INCREMENT BY 1
116+ NO MAXVALUE
117+ NO MINVALUE
118+ CACHE 1;
119+
120+ALTER SEQUENCE account_id_seq OWNED BY account.id;
121+
122 CREATE TABLE accountpassword (
123 id integer NOT NULL,
124 account integer NOT NULL,
125 password text NOT NULL
126 );
127
128+CREATE SEQUENCE accountpassword_id_seq
129+ INCREMENT BY 1
130+ NO MAXVALUE
131+ NO MINVALUE
132+ CACHE 1;
133+
134+ALTER SEQUENCE accountpassword_id_seq OWNED BY accountpassword.id;
135+
136+CREATE VIEW alllocks AS
137+ SELECT a.procpid, a.usename, (now() - a.query_start) AS age, c.relname, l.mode, l.granted, a.current_query FROM ((pg_locks l JOIN pg_class c ON ((l.relation = c.oid))) LEFT JOIN pg_stat_activity a ON ((a.procpid = l.pid)));
138+
139 CREATE TABLE announcement (
140 id integer NOT NULL,
141 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
142@@ -50,6 +113,14 @@
143 CONSTRAINT valid_url CHECK (valid_absolute_url(url))
144 );
145
146+CREATE SEQUENCE announcement_id_seq
147+ INCREMENT BY 1
148+ NO MAXVALUE
149+ NO MINVALUE
150+ CACHE 1;
151+
152+ALTER SEQUENCE announcement_id_seq OWNED BY announcement.id;
153+
154 CREATE TABLE answercontact (
155 id integer NOT NULL,
156 product integer,
157@@ -60,13 +131,20 @@
158 CONSTRAINT valid_target CHECK ((((product IS NULL) <> (distribution IS NULL)) AND ((product IS NULL) OR (sourcepackagename IS NULL))))
159 );
160
161+CREATE SEQUENCE answercontact_id_seq
162+ INCREMENT BY 1
163+ NO MAXVALUE
164+ NO MINVALUE
165+ CACHE 1;
166+
167+ALTER SEQUENCE answercontact_id_seq OWNED BY answercontact.id;
168+
169 CREATE TABLE archive (
170 id integer NOT NULL,
171 owner integer NOT NULL,
172 description text,
173 enabled boolean DEFAULT true NOT NULL,
174 authorized_size integer,
175- whiteboard text,
176 distribution integer NOT NULL,
177 purpose integer NOT NULL,
178 private boolean DEFAULT false NOT NULL,
179@@ -86,16 +164,36 @@
180 building_count integer DEFAULT 0 NOT NULL,
181 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
182 signing_key integer,
183+ removed_binary_retention_days integer,
184+ num_old_versions_published integer,
185+ displayname text NOT NULL,
186+ relative_build_score integer DEFAULT 0 NOT NULL,
187 CONSTRAINT valid_buildd_secret CHECK ((((private = true) AND (buildd_secret IS NOT NULL)) OR (private = false))),
188 CONSTRAINT valid_name CHECK (valid_name(name))
189 );
190
191+CREATE SEQUENCE archive_id_seq
192+ INCREMENT BY 1
193+ NO MAXVALUE
194+ NO MINVALUE
195+ CACHE 1;
196+
197+ALTER SEQUENCE archive_id_seq OWNED BY archive.id;
198+
199 CREATE TABLE archivearch (
200 id integer NOT NULL,
201 archive integer NOT NULL,
202 processorfamily integer NOT NULL
203 );
204
205+CREATE SEQUENCE archivearch_id_seq
206+ INCREMENT BY 1
207+ NO MAXVALUE
208+ NO MINVALUE
209+ CACHE 1;
210+
211+ALTER SEQUENCE archivearch_id_seq OWNED BY archivearch.id;
212+
213 CREATE TABLE archiveauthtoken (
214 id integer NOT NULL,
215 archive integer NOT NULL,
216@@ -105,16 +203,32 @@
217 token text NOT NULL
218 );
219
220+CREATE SEQUENCE archiveauthtoken_id_seq
221+ INCREMENT BY 1
222+ NO MAXVALUE
223+ NO MINVALUE
224+ CACHE 1;
225+
226+ALTER SEQUENCE archiveauthtoken_id_seq OWNED BY archiveauthtoken.id;
227+
228 CREATE TABLE archivedependency (
229 id integer NOT NULL,
230 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
231 archive integer NOT NULL,
232 dependency integer NOT NULL,
233- pocket integer,
234+ pocket integer NOT NULL,
235 component integer,
236 CONSTRAINT distinct_archives CHECK ((archive <> dependency))
237 );
238
239+CREATE SEQUENCE archivedependency_id_seq
240+ INCREMENT BY 1
241+ NO MAXVALUE
242+ NO MINVALUE
243+ CACHE 1;
244+
245+ALTER SEQUENCE archivedependency_id_seq OWNED BY archivedependency.id;
246+
247 CREATE TABLE archivepermission (
248 id integer NOT NULL,
249 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
250@@ -123,9 +237,19 @@
251 archive integer NOT NULL,
252 component integer,
253 sourcepackagename integer,
254- CONSTRAINT component_or_sourcepackagename CHECK (((component IS NULL) OR (sourcepackagename IS NULL)))
255+ packageset integer,
256+ explicit boolean DEFAULT false NOT NULL,
257+ CONSTRAINT one_target CHECK ((null_count(ARRAY[packageset, component, sourcepackagename]) = 2))
258 );
259
260+CREATE SEQUENCE archivepermission_id_seq
261+ INCREMENT BY 1
262+ NO MAXVALUE
263+ NO MINVALUE
264+ CACHE 1;
265+
266+ALTER SEQUENCE archivepermission_id_seq OWNED BY archivepermission.id;
267+
268 CREATE TABLE archivesubscriber (
269 id integer NOT NULL,
270 archive integer NOT NULL,
271@@ -139,6 +263,34 @@
272 cancelled_by integer
273 );
274
275+CREATE SEQUENCE archivesubscriber_id_seq
276+ INCREMENT BY 1
277+ NO MAXVALUE
278+ NO MINVALUE
279+ CACHE 1;
280+
281+ALTER SEQUENCE archivesubscriber_id_seq OWNED BY archivesubscriber.id;
282+
283+CREATE TABLE authtoken (
284+ id integer NOT NULL,
285+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
286+ date_consumed timestamp without time zone,
287+ token_type integer NOT NULL,
288+ token text NOT NULL,
289+ requester integer,
290+ requester_email text,
291+ email text NOT NULL,
292+ redirection_url text
293+);
294+
295+CREATE SEQUENCE authtoken_id_seq
296+ INCREMENT BY 1
297+ NO MAXVALUE
298+ NO MINVALUE
299+ CACHE 1;
300+
301+ALTER SEQUENCE authtoken_id_seq OWNED BY authtoken.id;
302+
303 CREATE TABLE binarypackagename (
304 id integer NOT NULL,
305 name text NOT NULL,
306@@ -161,6 +313,14 @@
307 id integer DEFAULT nextval(('binarypackagefile_id_seq'::text)::regclass) NOT NULL
308 );
309
310+CREATE SEQUENCE binarypackagefile_id_seq
311+ INCREMENT BY 1
312+ NO MAXVALUE
313+ NO MINVALUE
314+ CACHE 1;
315+
316+ALTER SEQUENCE binarypackagefile_id_seq OWNED BY binarypackagefile.id;
317+
318 CREATE TABLE binarypackagerelease (
319 id integer NOT NULL,
320 binarypackagename integer NOT NULL,
321@@ -271,6 +431,7 @@
322 last_accessed timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
323 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
324 restricted boolean DEFAULT false NOT NULL,
325+ hits integer DEFAULT 0 NOT NULL,
326 CONSTRAINT valid_filename CHECK ((filename !~~ '%/%'::text))
327 );
328
329@@ -329,9 +490,25 @@
330 CREATE VIEW binarypackagefilepublishing AS
331 SELECT (((libraryfilealias.id)::text || '.'::text) || (securebinarypackagepublishinghistory.id)::text) AS id, distroseries.distribution, securebinarypackagepublishinghistory.id AS binarypackagepublishing, component.name AS componentname, libraryfilealias.filename AS libraryfilealiasfilename, sourcepackagename.name AS sourcepackagename, binarypackagefile.libraryfile AS libraryfilealias, distroseries.name AS distroseriesname, distroarchseries.architecturetag, securebinarypackagepublishinghistory.status AS publishingstatus, securebinarypackagepublishinghistory.pocket, securebinarypackagepublishinghistory.archive FROM (((((((((securebinarypackagepublishinghistory JOIN binarypackagerelease ON ((securebinarypackagepublishinghistory.binarypackagerelease = binarypackagerelease.id))) JOIN build ON ((binarypackagerelease.build = build.id))) JOIN sourcepackagerelease ON ((build.sourcepackagerelease = sourcepackagerelease.id))) JOIN sourcepackagename ON ((sourcepackagerelease.sourcepackagename = sourcepackagename.id))) JOIN binarypackagefile ON ((binarypackagefile.binarypackagerelease = binarypackagerelease.id))) JOIN libraryfilealias ON ((binarypackagefile.libraryfile = libraryfilealias.id))) JOIN distroarchseries ON ((securebinarypackagepublishinghistory.distroarchseries = distroarchseries.id))) JOIN distroseries ON ((distroarchseries.distroseries = distroseries.id))) JOIN component ON ((securebinarypackagepublishinghistory.component = component.id))) WHERE (securebinarypackagepublishinghistory.dateremoved IS NULL);
332
333+CREATE SEQUENCE binarypackagename_id_seq
334+ INCREMENT BY 1
335+ NO MAXVALUE
336+ NO MINVALUE
337+ CACHE 1;
338+
339+ALTER SEQUENCE binarypackagename_id_seq OWNED BY binarypackagename.id;
340+
341 CREATE VIEW binarypackagepublishinghistory AS
342 SELECT securebinarypackagepublishinghistory.id, securebinarypackagepublishinghistory.binarypackagerelease, securebinarypackagepublishinghistory.status, securebinarypackagepublishinghistory.component, securebinarypackagepublishinghistory.section, securebinarypackagepublishinghistory.priority, securebinarypackagepublishinghistory.distroarchseries, securebinarypackagepublishinghistory.pocket, securebinarypackagepublishinghistory.archive, securebinarypackagepublishinghistory.datecreated, securebinarypackagepublishinghistory.datepublished, securebinarypackagepublishinghistory.datesuperseded, securebinarypackagepublishinghistory.supersededby, securebinarypackagepublishinghistory.datemadepending, securebinarypackagepublishinghistory.scheduleddeletiondate, securebinarypackagepublishinghistory.dateremoved, securebinarypackagepublishinghistory.removed_by, securebinarypackagepublishinghistory.removal_comment, securebinarypackagepublishinghistory.embargo, securebinarypackagepublishinghistory.embargolifted FROM securebinarypackagepublishinghistory WHERE (securebinarypackagepublishinghistory.embargo = false);
343
344+CREATE SEQUENCE binarypackagerelease_id_seq
345+ INCREMENT BY 1
346+ NO MAXVALUE
347+ NO MINVALUE
348+ CACHE 1;
349+
350+ALTER SEQUENCE binarypackagerelease_id_seq OWNED BY binarypackagerelease.id;
351+
352 CREATE TABLE bounty (
353 id integer NOT NULL,
354 name text NOT NULL,
355@@ -349,18 +526,42 @@
356 bountystatus integer DEFAULT 1 NOT NULL
357 );
358
359+CREATE SEQUENCE bounty_id_seq
360+ INCREMENT BY 1
361+ NO MAXVALUE
362+ NO MINVALUE
363+ CACHE 1;
364+
365+ALTER SEQUENCE bounty_id_seq OWNED BY bounty.id;
366+
367 CREATE TABLE bountymessage (
368 id integer NOT NULL,
369 bounty integer NOT NULL,
370 message integer NOT NULL
371 );
372
373+CREATE SEQUENCE bountymessage_id_seq
374+ INCREMENT BY 1
375+ NO MAXVALUE
376+ NO MINVALUE
377+ CACHE 1;
378+
379+ALTER SEQUENCE bountymessage_id_seq OWNED BY bountymessage.id;
380+
381 CREATE TABLE bountysubscription (
382 id integer NOT NULL,
383 bounty integer NOT NULL,
384 person integer NOT NULL
385 );
386
387+CREATE SEQUENCE bountysubscription_id_seq
388+ INCREMENT BY 1
389+ NO MAXVALUE
390+ NO MINVALUE
391+ CACHE 1;
392+
393+ALTER SEQUENCE bountysubscription_id_seq OWNED BY bountysubscription.id;
394+
395 CREATE TABLE branch (
396 id integer NOT NULL,
397 title text,
398@@ -376,7 +577,6 @@
399 last_mirrored timestamp without time zone,
400 last_mirror_attempt timestamp without time zone,
401 mirror_failures integer DEFAULT 0 NOT NULL,
402- pull_disabled boolean DEFAULT false NOT NULL,
403 mirror_status_message text,
404 last_scanned timestamp without time zone,
405 last_scanned_id text,
406@@ -395,15 +595,46 @@
407 repository_format integer,
408 metadir_format integer,
409 stacked_on integer,
410+ distroseries integer,
411+ sourcepackagename integer,
412+ owner_name text NOT NULL,
413+ target_suffix text,
414+ unique_name text,
415+ size_on_disk bigint,
416 CONSTRAINT branch_merge_control CHECK (((merge_robot IS NULL) OR (merge_control_status = ANY (ARRAY[3, 4])))),
417 CONSTRAINT branch_type_url_consistent CHECK (((((branch_type = 2) AND (url IS NOT NULL)) OR ((branch_type = ANY (ARRAY[1, 3])) AND (url IS NULL))) OR (branch_type = 4))),
418 CONSTRAINT branch_url_no_trailing_slash CHECK ((url !~~ '%/'::text)),
419 CONSTRAINT branch_url_not_supermirror CHECK ((url !~~ 'http://bazaar.launchpad.net/%'::text)),
420+ CONSTRAINT one_container CHECK ((((distroseries IS NULL) = (sourcepackagename IS NULL)) AND ((distroseries IS NULL) OR (product IS NULL)))),
421 CONSTRAINT valid_home_page CHECK (valid_absolute_url(home_page)),
422 CONSTRAINT valid_name CHECK (valid_branch_name(name)),
423 CONSTRAINT valid_url CHECK (valid_absolute_url(url))
424 );
425
426+CREATE SEQUENCE branch_id_seq
427+ INCREMENT BY 1
428+ NO MAXVALUE
429+ NO MINVALUE
430+ CACHE 1;
431+
432+ALTER SEQUENCE branch_id_seq OWNED BY branch.id;
433+
434+CREATE TABLE branchjob (
435+ id integer NOT NULL,
436+ job integer NOT NULL,
437+ branch integer,
438+ job_type integer NOT NULL,
439+ json_data text
440+);
441+
442+CREATE SEQUENCE branchjob_id_seq
443+ INCREMENT BY 1
444+ NO MAXVALUE
445+ NO MINVALUE
446+ CACHE 1;
447+
448+ALTER SEQUENCE branchjob_id_seq OWNED BY branchjob.id;
449+
450 CREATE TABLE branchmergeproposal (
451 id integer NOT NULL,
452 registrant integer NOT NULL,
453@@ -432,10 +663,36 @@
454 merge_log_file integer,
455 superseded_by integer,
456 root_message_id text,
457+ review_diff integer,
458+ merge_diff integer,
459 CONSTRAINT different_branches CHECK ((((source_branch <> target_branch) AND (dependent_branch <> source_branch)) AND (dependent_branch <> target_branch))),
460 CONSTRAINT positive_revno CHECK (((merged_revno IS NULL) OR (merged_revno > 0)))
461 );
462
463+CREATE SEQUENCE branchmergeproposal_id_seq
464+ INCREMENT BY 1
465+ NO MAXVALUE
466+ NO MINVALUE
467+ CACHE 1;
468+
469+ALTER SEQUENCE branchmergeproposal_id_seq OWNED BY branchmergeproposal.id;
470+
471+CREATE TABLE branchmergeproposaljob (
472+ id integer NOT NULL,
473+ job integer NOT NULL,
474+ branch_merge_proposal integer NOT NULL,
475+ job_type integer NOT NULL,
476+ json_data text
477+);
478+
479+CREATE SEQUENCE branchmergeproposaljob_id_seq
480+ INCREMENT BY 1
481+ NO MAXVALUE
482+ NO MINVALUE
483+ CACHE 1;
484+
485+ALTER SEQUENCE branchmergeproposaljob_id_seq OWNED BY branchmergeproposaljob.id;
486+
487 CREATE TABLE branchmergerobot (
488 id integer NOT NULL,
489 registrant integer NOT NULL,
490@@ -445,12 +702,30 @@
491 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
492 );
493
494+CREATE SEQUENCE branchmergerobot_id_seq
495+ INCREMENT BY 1
496+ NO MAXVALUE
497+ NO MINVALUE
498+ CACHE 1;
499+
500+ALTER SEQUENCE branchmergerobot_id_seq OWNED BY branchmergerobot.id;
501+
502 CREATE TABLE branchrevision (
503 id integer NOT NULL,
504 sequence integer,
505 branch integer NOT NULL,
506 revision integer NOT NULL
507 );
508+ALTER TABLE ONLY branchrevision ALTER COLUMN branch SET STATISTICS 500;
509+ALTER TABLE ONLY branchrevision ALTER COLUMN revision SET STATISTICS 500;
510+
511+CREATE SEQUENCE branchrevision_id_seq
512+ INCREMENT BY 1
513+ NO MAXVALUE
514+ NO MINVALUE
515+ CACHE 1;
516+
517+ALTER SEQUENCE branchrevision_id_seq OWNED BY branchrevision.id;
518
519 CREATE TABLE branchsubscription (
520 id integer NOT NULL,
521@@ -462,6 +737,14 @@
522 review_level integer DEFAULT 0 NOT NULL
523 );
524
525+CREATE SEQUENCE branchsubscription_id_seq
526+ INCREMENT BY 1
527+ NO MAXVALUE
528+ NO MINVALUE
529+ CACHE 1;
530+
531+ALTER SEQUENCE branchsubscription_id_seq OWNED BY branchsubscription.id;
532+
533 CREATE TABLE branchvisibilitypolicy (
534 id integer NOT NULL,
535 project integer,
536@@ -471,6 +754,14 @@
537 CONSTRAINT only_one_target CHECK (((project IS NULL) <> (product IS NULL)))
538 );
539
540+CREATE SEQUENCE branchvisibilitypolicy_id_seq
541+ INCREMENT BY 1
542+ NO MAXVALUE
543+ NO MINVALUE
544+ CACHE 1;
545+
546+ALTER SEQUENCE branchvisibilitypolicy_id_seq OWNED BY branchvisibilitypolicy.id;
547+
548 CREATE TABLE person (
549 id integer NOT NULL,
550 displayname text NOT NULL,
551@@ -565,13 +856,14 @@
552 official_codehosting boolean DEFAULT false NOT NULL,
553 license_approved boolean DEFAULT false NOT NULL,
554 registrant integer NOT NULL,
555+ remote_product text,
556 CONSTRAINT only_launchpad_has_expiration CHECK (((enable_bug_expiration IS FALSE) OR (official_malone IS TRUE))),
557 CONSTRAINT private_bugs_need_contact CHECK (((private_bugs IS FALSE) OR (bug_supervisor IS NOT NULL))),
558 CONSTRAINT valid_name CHECK (valid_name(name))
559 );
560
561 CREATE VIEW branchwithsortkeys AS
562- SELECT branch.id, branch.title, branch.summary, branch.owner, branch.product, branch.author, branch.name, branch.home_page, branch.url, branch.whiteboard, branch.lifecycle_status, branch.last_mirrored, branch.last_mirror_attempt, branch.mirror_failures, branch.pull_disabled, branch.mirror_status_message, branch.last_scanned, branch.last_scanned_id, branch.last_mirrored_id, branch.date_created, branch.revision_count, branch.next_mirror_time, branch.private, branch.branch_type, branch.reviewer, branch.merge_robot, branch.merge_control_status, branch.date_last_modified, branch.registrant, product.name AS product_name, author.displayname AS author_name, owner.displayname AS owner_name FROM (((branch JOIN person owner ON ((branch.owner = owner.id))) LEFT JOIN product ON ((branch.product = product.id))) LEFT JOIN person author ON ((branch.author = author.id)));
563+ SELECT branch.id, branch.title, branch.summary, branch.owner, branch.product, branch.author, branch.name, branch.home_page, branch.url, branch.whiteboard, branch.lifecycle_status, branch.last_mirrored, branch.last_mirror_attempt, branch.mirror_failures, branch.mirror_status_message, branch.last_scanned, branch.last_scanned_id, branch.last_mirrored_id, branch.date_created, branch.revision_count, branch.next_mirror_time, branch.private, branch.branch_type, branch.reviewer, branch.merge_robot, branch.merge_control_status, branch.date_last_modified, branch.registrant, branch.branch_format, branch.repository_format, branch.metadir_format, branch.stacked_on, product.name AS product_name, author.displayname AS author_name, owner.displayname AS owner_name FROM (((branch JOIN person owner ON ((branch.owner = owner.id))) LEFT JOIN product ON ((branch.product = product.id))) LEFT JOIN person author ON ((branch.author = author.id)));
564
565 CREATE TABLE bug (
566 id integer NOT NULL,
567@@ -591,11 +883,21 @@
568 number_of_duplicates integer DEFAULT 0 NOT NULL,
569 message_count integer DEFAULT 0 NOT NULL,
570 users_affected_count integer DEFAULT 0,
571+ users_unaffected_count integer DEFAULT 0,
572+ hotness integer DEFAULT 0 NOT NULL,
573 CONSTRAINT notduplicateofself CHECK ((NOT (id = duplicateof))),
574 CONSTRAINT sane_description CHECK (((ltrim(description) <> ''::text) AND (char_length(description) <= 50000))),
575 CONSTRAINT valid_bug_name CHECK (valid_bug_name(name))
576 );
577
578+CREATE SEQUENCE bug_id_seq
579+ INCREMENT BY 1
580+ NO MAXVALUE
581+ NO MINVALUE
582+ CACHE 1;
583+
584+ALTER SEQUENCE bug_id_seq OWNED BY bug.id;
585+
586 CREATE TABLE bugactivity (
587 id integer NOT NULL,
588 bug integer NOT NULL,
589@@ -607,12 +909,29 @@
590 message text
591 );
592
593+CREATE SEQUENCE bugactivity_id_seq
594+ INCREMENT BY 1
595+ NO MAXVALUE
596+ NO MINVALUE
597+ CACHE 1;
598+
599+ALTER SEQUENCE bugactivity_id_seq OWNED BY bugactivity.id;
600+
601 CREATE TABLE bugaffectsperson (
602 id integer NOT NULL,
603 bug integer NOT NULL,
604- person integer NOT NULL
605+ person integer NOT NULL,
606+ affected boolean DEFAULT true NOT NULL
607 );
608
609+CREATE SEQUENCE bugaffectsperson_id_seq
610+ INCREMENT BY 1
611+ NO MAXVALUE
612+ NO MINVALUE
613+ CACHE 1;
614+
615+ALTER SEQUENCE bugaffectsperson_id_seq OWNED BY bugaffectsperson.id;
616+
617 CREATE TABLE bugattachment (
618 id integer NOT NULL,
619 message integer NOT NULL,
620@@ -624,17 +943,32 @@
621 CONSTRAINT valid_name CHECK (valid_name(name))
622 );
623
624+CREATE SEQUENCE bugattachment_id_seq
625+ INCREMENT BY 1
626+ NO MAXVALUE
627+ NO MINVALUE
628+ CACHE 1;
629+
630+ALTER SEQUENCE bugattachment_id_seq OWNED BY bugattachment.id;
631+
632 CREATE TABLE bugbranch (
633 id integer NOT NULL,
634 datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
635 bug integer NOT NULL,
636 branch integer NOT NULL,
637 revision_hint integer,
638- status integer NOT NULL,
639 whiteboard text,
640 registrant integer NOT NULL
641 );
642
643+CREATE SEQUENCE bugbranch_id_seq
644+ INCREMENT BY 1
645+ NO MAXVALUE
646+ NO MINVALUE
647+ CACHE 1;
648+
649+ALTER SEQUENCE bugbranch_id_seq OWNED BY bugbranch.id;
650+
651 CREATE TABLE bugcve (
652 id integer NOT NULL,
653 bug integer NOT NULL,
654@@ -642,6 +976,14 @@
655 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
656 );
657
658+CREATE SEQUENCE bugcve_id_seq
659+ INCREMENT BY 1
660+ NO MAXVALUE
661+ NO MINVALUE
662+ CACHE 1;
663+
664+ALTER SEQUENCE bugcve_id_seq OWNED BY bugcve.id;
665+
666 CREATE TABLE bugmessage (
667 id integer NOT NULL,
668 bug integer NOT NULL,
669@@ -652,6 +994,14 @@
670 CONSTRAINT imported_comment CHECK (((remote_comment_id IS NULL) OR (bugwatch IS NOT NULL)))
671 );
672
673+CREATE SEQUENCE bugmessage_id_seq
674+ INCREMENT BY 1
675+ NO MAXVALUE
676+ NO MINVALUE
677+ CACHE 1;
678+
679+ALTER SEQUENCE bugmessage_id_seq OWNED BY bugmessage.id;
680+
681 CREATE TABLE bugnomination (
682 id integer NOT NULL,
683 bug integer NOT NULL,
684@@ -661,9 +1011,18 @@
685 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()),
686 date_decided timestamp without time zone,
687 owner integer NOT NULL,
688- decider integer
689+ decider integer,
690+ CONSTRAINT distroseries_or_productseries CHECK (((distroseries IS NULL) <> (productseries IS NULL)))
691 );
692
693+CREATE SEQUENCE bugnomination_id_seq
694+ INCREMENT BY 1
695+ NO MAXVALUE
696+ NO MINVALUE
697+ CACHE 1;
698+
699+ALTER SEQUENCE bugnomination_id_seq OWNED BY bugnomination.id;
700+
701 CREATE TABLE bugnotification (
702 id integer NOT NULL,
703 bug integer NOT NULL,
704@@ -672,6 +1031,28 @@
705 date_emailed timestamp without time zone
706 );
707
708+CREATE SEQUENCE bugnotification_id_seq
709+ INCREMENT BY 1
710+ NO MAXVALUE
711+ NO MINVALUE
712+ CACHE 1;
713+
714+ALTER SEQUENCE bugnotification_id_seq OWNED BY bugnotification.id;
715+
716+CREATE TABLE bugnotificationattachment (
717+ id integer NOT NULL,
718+ message integer NOT NULL,
719+ bug_notification integer NOT NULL
720+);
721+
722+CREATE SEQUENCE bugnotificationattachment_id_seq
723+ INCREMENT BY 1
724+ NO MAXVALUE
725+ NO MINVALUE
726+ CACHE 1;
727+
728+ALTER SEQUENCE bugnotificationattachment_id_seq OWNED BY bugnotificationattachment.id;
729+
730 CREATE TABLE bugnotificationrecipient (
731 id integer NOT NULL,
732 bug_notification integer NOT NULL,
733@@ -680,6 +1061,14 @@
734 reason_body text NOT NULL
735 );
736
737+CREATE SEQUENCE bugnotificationrecipient_id_seq
738+ INCREMENT BY 1
739+ NO MAXVALUE
740+ NO MINVALUE
741+ CACHE 1;
742+
743+ALTER SEQUENCE bugnotificationrecipient_id_seq OWNED BY bugnotificationrecipient.id;
744+
745 CREATE TABLE bugpackageinfestation (
746 id integer NOT NULL,
747 bug integer NOT NULL,
748@@ -694,6 +1083,14 @@
749 lastmodifiedby integer NOT NULL
750 );
751
752+CREATE SEQUENCE bugpackageinfestation_id_seq
753+ INCREMENT BY 1
754+ NO MAXVALUE
755+ NO MINVALUE
756+ CACHE 1;
757+
758+ALTER SEQUENCE bugpackageinfestation_id_seq OWNED BY bugpackageinfestation.id;
759+
760 CREATE TABLE bugproductinfestation (
761 id integer NOT NULL,
762 bug integer NOT NULL,
763@@ -708,6 +1105,14 @@
764 lastmodifiedby integer NOT NULL
765 );
766
767+CREATE SEQUENCE bugproductinfestation_id_seq
768+ INCREMENT BY 1
769+ NO MAXVALUE
770+ NO MINVALUE
771+ CACHE 1;
772+
773+ALTER SEQUENCE bugproductinfestation_id_seq OWNED BY bugproductinfestation.id;
774+
775 CREATE TABLE bugsubscription (
776 id integer NOT NULL,
777 person integer NOT NULL,
778@@ -716,6 +1121,14 @@
779 subscribed_by integer NOT NULL
780 );
781
782+CREATE SEQUENCE bugsubscription_id_seq
783+ INCREMENT BY 1
784+ NO MAXVALUE
785+ NO MINVALUE
786+ CACHE 1;
787+
788+ALTER SEQUENCE bugsubscription_id_seq OWNED BY bugsubscription.id;
789+
790 CREATE TABLE bugtag (
791 id integer NOT NULL,
792 bug integer NOT NULL,
793@@ -723,6 +1136,14 @@
794 CONSTRAINT valid_tag CHECK (valid_name(tag))
795 );
796
797+CREATE SEQUENCE bugtag_id_seq
798+ INCREMENT BY 1
799+ NO MAXVALUE
800+ NO MINVALUE
801+ CACHE 1;
802+
803+ALTER SEQUENCE bugtag_id_seq OWNED BY bugtag.id;
804+
805 CREATE TABLE bugtask (
806 id integer NOT NULL,
807 bug integer NOT NULL,
808@@ -752,9 +1173,20 @@
809 date_triaged timestamp without time zone,
810 date_fix_committed timestamp without time zone,
811 date_fix_released timestamp without time zone,
812+ date_left_closed timestamp without time zone,
813+ hotness_rank integer DEFAULT 0 NOT NULL,
814+ date_milestone_set timestamp without time zone,
815 CONSTRAINT bugtask_assignment_checks CHECK (CASE WHEN (product IS NOT NULL) THEN ((((productseries IS NULL) AND (distribution IS NULL)) AND (distroseries IS NULL)) AND (sourcepackagename IS NULL)) WHEN (productseries IS NOT NULL) THEN (((distribution IS NULL) AND (distroseries IS NULL)) AND (sourcepackagename IS NULL)) WHEN (distribution IS NOT NULL) THEN (distroseries IS NULL) WHEN (distroseries IS NOT NULL) THEN true ELSE false END)
816 );
817
818+CREATE SEQUENCE bugtask_id_seq
819+ INCREMENT BY 1
820+ NO MAXVALUE
821+ NO MINVALUE
822+ CACHE 1;
823+
824+ALTER SEQUENCE bugtask_id_seq OWNED BY bugtask.id;
825+
826 CREATE TABLE bugtracker (
827 id integer NOT NULL,
828 bugtrackertype integer NOT NULL,
829@@ -768,15 +1200,32 @@
830 version text,
831 block_comment_pushing boolean DEFAULT false NOT NULL,
832 has_lp_plugin boolean,
833+ active boolean DEFAULT true NOT NULL,
834 CONSTRAINT valid_name CHECK (valid_name(name))
835 );
836
837+CREATE SEQUENCE bugtracker_id_seq
838+ INCREMENT BY 1
839+ NO MAXVALUE
840+ NO MINVALUE
841+ CACHE 1;
842+
843+ALTER SEQUENCE bugtracker_id_seq OWNED BY bugtracker.id;
844+
845 CREATE TABLE bugtrackeralias (
846 id integer NOT NULL,
847 bugtracker integer NOT NULL,
848 base_url text NOT NULL
849 );
850
851+CREATE SEQUENCE bugtrackeralias_id_seq
852+ INCREMENT BY 1
853+ NO MAXVALUE
854+ NO MINVALUE
855+ CACHE 1;
856+
857+ALTER SEQUENCE bugtrackeralias_id_seq OWNED BY bugtrackeralias.id;
858+
859 CREATE TABLE bugtrackerperson (
860 id integer NOT NULL,
861 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
862@@ -785,6 +1234,14 @@
863 name text NOT NULL
864 );
865
866+CREATE SEQUENCE bugtrackerperson_id_seq
867+ INCREMENT BY 1
868+ NO MAXVALUE
869+ NO MINVALUE
870+ CACHE 1;
871+
872+ALTER SEQUENCE bugtrackerperson_id_seq OWNED BY bugtrackerperson.id;
873+
874 CREATE TABLE bugwatch (
875 id integer NOT NULL,
876 bug integer NOT NULL,
877@@ -800,6 +1257,22 @@
878 remote_lp_bug_id integer
879 );
880
881+CREATE SEQUENCE bugwatch_id_seq
882+ INCREMENT BY 1
883+ NO MAXVALUE
884+ NO MINVALUE
885+ CACHE 1;
886+
887+ALTER SEQUENCE bugwatch_id_seq OWNED BY bugwatch.id;
888+
889+CREATE SEQUENCE build_id_seq
890+ INCREMENT BY 1
891+ NO MAXVALUE
892+ NO MINVALUE
893+ CACHE 1;
894+
895+ALTER SEQUENCE build_id_seq OWNED BY build.id;
896+
897 CREATE TABLE builder (
898 id integer NOT NULL,
899 processor integer NOT NULL,
900@@ -819,6 +1292,14 @@
901 CONSTRAINT valid_absolute_url CHECK (valid_absolute_url(url))
902 );
903
904+CREATE SEQUENCE builder_id_seq
905+ INCREMENT BY 1
906+ NO MAXVALUE
907+ NO MINVALUE
908+ CACHE 1;
909+
910+ALTER SEQUENCE builder_id_seq OWNED BY builder.id;
911+
912 CREATE TABLE buildqueue (
913 id integer NOT NULL,
914 build integer NOT NULL,
915@@ -830,6 +1311,14 @@
916 manual boolean DEFAULT false NOT NULL
917 );
918
919+CREATE SEQUENCE buildqueue_id_seq
920+ INCREMENT BY 1
921+ NO MAXVALUE
922+ NO MINVALUE
923+ CACHE 1;
924+
925+ALTER SEQUENCE buildqueue_id_seq OWNED BY buildqueue.id;
926+
927 CREATE TABLE codeimport (
928 id integer NOT NULL,
929 branch integer NOT NULL,
930@@ -844,9 +1333,18 @@
931 owner integer NOT NULL,
932 assignee integer,
933 update_interval interval,
934- CONSTRAINT valid_vcs_details CHECK (CASE WHEN (rcs_type = 1) THEN (((((cvs_root IS NOT NULL) AND (cvs_root <> ''::text)) AND (cvs_module IS NOT NULL)) AND (cvs_module <> ''::text)) AND (svn_branch_url IS NULL)) WHEN (rcs_type = 2) THEN ((((cvs_root IS NULL) AND (cvs_module IS NULL)) AND (svn_branch_url IS NOT NULL)) AND valid_absolute_url(svn_branch_url)) ELSE false END)
935+ git_repo_url text,
936+ CONSTRAINT valid_vcs_details CHECK (CASE WHEN (rcs_type = 1) THEN ((((((cvs_root IS NOT NULL) AND (cvs_root <> ''::text)) AND (cvs_module IS NOT NULL)) AND (cvs_module <> ''::text)) AND (svn_branch_url IS NULL)) AND (git_repo_url IS NULL)) WHEN ((rcs_type = 2) OR (rcs_type = 3)) THEN (((((cvs_root IS NULL) AND (cvs_module IS NULL)) AND (svn_branch_url IS NOT NULL)) AND valid_absolute_url(svn_branch_url)) AND (git_repo_url IS NULL)) WHEN (rcs_type = 4) THEN ((((cvs_root IS NULL) AND (cvs_module IS NULL)) AND (svn_branch_url IS NULL)) AND (git_repo_url IS NOT NULL)) ELSE false END)
937 );
938
939+CREATE SEQUENCE codeimport_id_seq
940+ INCREMENT BY 1
941+ NO MAXVALUE
942+ NO MINVALUE
943+ CACHE 1;
944+
945+ALTER SEQUENCE codeimport_id_seq OWNED BY codeimport.id;
946+
947 CREATE TABLE codeimportevent (
948 id integer NOT NULL,
949 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
950@@ -856,6 +1354,14 @@
951 machine integer
952 );
953
954+CREATE SEQUENCE codeimportevent_id_seq
955+ INCREMENT BY 1
956+ NO MAXVALUE
957+ NO MINVALUE
958+ CACHE 1;
959+
960+ALTER SEQUENCE codeimportevent_id_seq OWNED BY codeimportevent.id;
961+
962 CREATE TABLE codeimporteventdata (
963 id integer NOT NULL,
964 event integer,
965@@ -863,6 +1369,14 @@
966 data_value text
967 );
968
969+CREATE SEQUENCE codeimporteventdata_id_seq
970+ INCREMENT BY 1
971+ NO MAXVALUE
972+ NO MINVALUE
973+ CACHE 1;
974+
975+ALTER SEQUENCE codeimporteventdata_id_seq OWNED BY codeimporteventdata.id;
976+
977 CREATE TABLE codeimportjob (
978 id integer NOT NULL,
979 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
980@@ -878,6 +1392,14 @@
981 CONSTRAINT valid_state CHECK (CASE WHEN (state = 10) THEN (((((machine IS NULL) AND (ordering IS NULL)) AND (heartbeat IS NULL)) AND (date_started IS NULL)) AND (logtail IS NULL)) WHEN (state = 20) THEN (((((machine IS NOT NULL) AND (ordering IS NOT NULL)) AND (heartbeat IS NULL)) AND (date_started IS NULL)) AND (logtail IS NULL)) WHEN (state = 30) THEN (((((machine IS NOT NULL) AND (ordering IS NULL)) AND (heartbeat IS NOT NULL)) AND (date_started IS NOT NULL)) AND (logtail IS NOT NULL)) ELSE false END)
982 );
983
984+CREATE SEQUENCE codeimportjob_id_seq
985+ INCREMENT BY 1
986+ NO MAXVALUE
987+ NO MINVALUE
988+ CACHE 1;
989+
990+ALTER SEQUENCE codeimportjob_id_seq OWNED BY codeimportjob.id;
991+
992 CREATE TABLE codeimportmachine (
993 id integer NOT NULL,
994 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
995@@ -886,6 +1408,14 @@
996 heartbeat timestamp without time zone
997 );
998
999+CREATE SEQUENCE codeimportmachine_id_seq
1000+ INCREMENT BY 1
1001+ NO MAXVALUE
1002+ NO MINVALUE
1003+ CACHE 1;
1004+
1005+ALTER SEQUENCE codeimportmachine_id_seq OWNED BY codeimportmachine.id;
1006+
1007 CREATE TABLE codeimportresult (
1008 id integer NOT NULL,
1009 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
1010@@ -898,6 +1428,14 @@
1011 date_job_started timestamp without time zone
1012 );
1013
1014+CREATE SEQUENCE codeimportresult_id_seq
1015+ INCREMENT BY 1
1016+ NO MAXVALUE
1017+ NO MINVALUE
1018+ CACHE 1;
1019+
1020+ALTER SEQUENCE codeimportresult_id_seq OWNED BY codeimportresult.id;
1021+
1022 CREATE TABLE codereviewmessage (
1023 id integer NOT NULL,
1024 branch_merge_proposal integer NOT NULL,
1025@@ -906,6 +1444,14 @@
1026 vote_tag text
1027 );
1028
1029+CREATE SEQUENCE codereviewmessage_id_seq
1030+ INCREMENT BY 1
1031+ NO MAXVALUE
1032+ NO MINVALUE
1033+ CACHE 1;
1034+
1035+ALTER SEQUENCE codereviewmessage_id_seq OWNED BY codereviewmessage.id;
1036+
1037 CREATE TABLE codereviewvote (
1038 id integer NOT NULL,
1039 branch_merge_proposal integer NOT NULL,
1040@@ -916,6 +1462,14 @@
1041 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
1042 );
1043
1044+CREATE SEQUENCE codereviewvote_id_seq
1045+ INCREMENT BY 1
1046+ NO MAXVALUE
1047+ NO MINVALUE
1048+ CACHE 1;
1049+
1050+ALTER SEQUENCE codereviewvote_id_seq OWNED BY codereviewvote.id;
1051+
1052 CREATE TABLE commercialsubscription (
1053 id integer NOT NULL,
1054 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
1055@@ -930,6 +1484,22 @@
1056 sales_system_id text
1057 );
1058
1059+CREATE SEQUENCE commercialsubscription_id_seq
1060+ INCREMENT BY 1
1061+ NO MAXVALUE
1062+ NO MINVALUE
1063+ CACHE 1;
1064+
1065+ALTER SEQUENCE commercialsubscription_id_seq OWNED BY commercialsubscription.id;
1066+
1067+CREATE SEQUENCE component_id_seq
1068+ INCREMENT BY 1
1069+ NO MAXVALUE
1070+ NO MINVALUE
1071+ CACHE 1;
1072+
1073+ALTER SEQUENCE component_id_seq OWNED BY component.id;
1074+
1075 CREATE TABLE componentselection (
1076 id integer NOT NULL,
1077 distroseries integer NOT NULL,
1078@@ -937,12 +1507,28 @@
1079 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
1080 );
1081
1082+CREATE SEQUENCE componentselection_id_seq
1083+ INCREMENT BY 1
1084+ NO MAXVALUE
1085+ NO MINVALUE
1086+ CACHE 1;
1087+
1088+ALTER SEQUENCE componentselection_id_seq OWNED BY componentselection.id;
1089+
1090 CREATE TABLE continent (
1091 id integer NOT NULL,
1092 code text NOT NULL,
1093 name text NOT NULL
1094 );
1095
1096+CREATE SEQUENCE continent_id_seq
1097+ INCREMENT BY 1
1098+ NO MAXVALUE
1099+ NO MINVALUE
1100+ CACHE 1;
1101+
1102+ALTER SEQUENCE continent_id_seq OWNED BY continent.id;
1103+
1104 CREATE TABLE country (
1105 id integer NOT NULL,
1106 iso3166code2 character(2) NOT NULL,
1107@@ -953,6 +1539,14 @@
1108 continent integer NOT NULL
1109 );
1110
1111+CREATE SEQUENCE country_id_seq
1112+ INCREMENT BY 1
1113+ NO MAXVALUE
1114+ NO MINVALUE
1115+ CACHE 1;
1116+
1117+ALTER SEQUENCE country_id_seq OWNED BY country.id;
1118+
1119 CREATE TABLE customlanguagecode (
1120 id integer NOT NULL,
1121 product integer,
1122@@ -964,6 +1558,14 @@
1123 CONSTRAINT product_or_distro CHECK (((product IS NULL) <> (distribution IS NULL)))
1124 );
1125
1126+CREATE SEQUENCE customlanguagecode_id_seq
1127+ INCREMENT BY 1
1128+ NO MAXVALUE
1129+ NO MINVALUE
1130+ CACHE 1;
1131+
1132+ALTER SEQUENCE customlanguagecode_id_seq OWNED BY customlanguagecode.id;
1133+
1134 CREATE TABLE cve (
1135 id integer NOT NULL,
1136 sequence text NOT NULL,
1137@@ -975,6 +1577,14 @@
1138 CONSTRAINT valid_cve_ref CHECK (valid_cve(sequence))
1139 );
1140
1141+CREATE SEQUENCE cve_id_seq
1142+ INCREMENT BY 1
1143+ NO MAXVALUE
1144+ NO MINVALUE
1145+ CACHE 1;
1146+
1147+ALTER SEQUENCE cve_id_seq OWNED BY cve.id;
1148+
1149 CREATE TABLE cvereference (
1150 id integer NOT NULL,
1151 cve integer NOT NULL,
1152@@ -984,6 +1594,31 @@
1153 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
1154 );
1155
1156+CREATE SEQUENCE cvereference_id_seq
1157+ INCREMENT BY 1
1158+ NO MAXVALUE
1159+ NO MINVALUE
1160+ CACHE 1;
1161+
1162+ALTER SEQUENCE cvereference_id_seq OWNED BY cvereference.id;
1163+
1164+CREATE TABLE diff (
1165+ id integer NOT NULL,
1166+ diff_text integer,
1167+ diff_lines_count integer,
1168+ diffstat text,
1169+ added_lines_count integer,
1170+ removed_lines_count integer
1171+);
1172+
1173+CREATE SEQUENCE diff_id_seq
1174+ INCREMENT BY 1
1175+ NO MAXVALUE
1176+ NO MINVALUE
1177+ CACHE 1;
1178+
1179+ALTER SEQUENCE diff_id_seq OWNED BY diff.id;
1180+
1181 CREATE TABLE distribution (
1182 id integer NOT NULL,
1183 name text NOT NULL,
1184@@ -1022,6 +1657,14 @@
1185 CONSTRAINT valid_name CHECK (valid_name(name))
1186 );
1187
1188+CREATE SEQUENCE distribution_id_seq
1189+ INCREMENT BY 1
1190+ NO MAXVALUE
1191+ NO MINVALUE
1192+ CACHE 1;
1193+
1194+ALTER SEQUENCE distribution_id_seq OWNED BY distribution.id;
1195+
1196 CREATE TABLE distributionbounty (
1197 id integer NOT NULL,
1198 bounty integer NOT NULL,
1199@@ -1029,6 +1672,14 @@
1200 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
1201 );
1202
1203+CREATE SEQUENCE distributionbounty_id_seq
1204+ INCREMENT BY 1
1205+ NO MAXVALUE
1206+ NO MINVALUE
1207+ CACHE 1;
1208+
1209+ALTER SEQUENCE distributionbounty_id_seq OWNED BY distributionbounty.id;
1210+
1211 CREATE TABLE distributionmirror (
1212 id integer NOT NULL,
1213 distribution integer NOT NULL,
1214@@ -1056,6 +1707,14 @@
1215 CONSTRAINT valid_rsync_base_url CHECK (valid_absolute_url(rsync_base_url))
1216 );
1217
1218+CREATE SEQUENCE distributionmirror_id_seq
1219+ INCREMENT BY 1
1220+ NO MAXVALUE
1221+ NO MINVALUE
1222+ CACHE 1;
1223+
1224+ALTER SEQUENCE distributionmirror_id_seq OWNED BY distributionmirror.id;
1225+
1226 CREATE TABLE distributionsourcepackage (
1227 id integer NOT NULL,
1228 distribution integer NOT NULL,
1229@@ -1063,6 +1722,14 @@
1230 bug_reporting_guidelines text
1231 );
1232
1233+CREATE SEQUENCE distributionsourcepackage_id_seq
1234+ INCREMENT BY 1
1235+ NO MAXVALUE
1236+ NO MINVALUE
1237+ CACHE 1;
1238+
1239+ALTER SEQUENCE distributionsourcepackage_id_seq OWNED BY distributionsourcepackage.id;
1240+
1241 CREATE TABLE distributionsourcepackagecache (
1242 id integer NOT NULL,
1243 distribution integer NOT NULL,
1244@@ -1076,6 +1743,22 @@
1245 archive integer NOT NULL
1246 );
1247
1248+CREATE SEQUENCE distributionsourcepackagecache_id_seq
1249+ INCREMENT BY 1
1250+ NO MAXVALUE
1251+ NO MINVALUE
1252+ CACHE 1;
1253+
1254+ALTER SEQUENCE distributionsourcepackagecache_id_seq OWNED BY distributionsourcepackagecache.id;
1255+
1256+CREATE SEQUENCE distroarchseries_id_seq
1257+ INCREMENT BY 1
1258+ NO MAXVALUE
1259+ NO MINVALUE
1260+ CACHE 1;
1261+
1262+ALTER SEQUENCE distroarchseries_id_seq OWNED BY distroarchseries.id;
1263+
1264 CREATE TABLE distrocomponentuploader (
1265 id integer NOT NULL,
1266 distribution integer NOT NULL,
1267@@ -1084,6 +1767,22 @@
1268 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
1269 );
1270
1271+CREATE SEQUENCE distrocomponentuploader_id_seq
1272+ INCREMENT BY 1
1273+ NO MAXVALUE
1274+ NO MINVALUE
1275+ CACHE 1;
1276+
1277+ALTER SEQUENCE distrocomponentuploader_id_seq OWNED BY distrocomponentuploader.id;
1278+
1279+CREATE SEQUENCE distroseries_id_seq
1280+ INCREMENT BY 1
1281+ NO MAXVALUE
1282+ NO MINVALUE
1283+ CACHE 1;
1284+
1285+ALTER SEQUENCE distroseries_id_seq OWNED BY distroseries.id;
1286+
1287 CREATE TABLE distroserieslanguage (
1288 id integer NOT NULL,
1289 distroseries integer,
1290@@ -1096,6 +1795,14 @@
1291 unreviewed_count integer DEFAULT 0 NOT NULL
1292 );
1293
1294+CREATE SEQUENCE distroserieslanguage_id_seq
1295+ INCREMENT BY 1
1296+ NO MAXVALUE
1297+ NO MINVALUE
1298+ CACHE 1;
1299+
1300+ALTER SEQUENCE distroserieslanguage_id_seq OWNED BY distroserieslanguage.id;
1301+
1302 CREATE TABLE distroseriespackagecache (
1303 id integer NOT NULL,
1304 distroseries integer NOT NULL,
1305@@ -1109,6 +1816,14 @@
1306 archive integer NOT NULL
1307 );
1308
1309+CREATE SEQUENCE distroseriespackagecache_id_seq
1310+ INCREMENT BY 1
1311+ NO MAXVALUE
1312+ NO MINVALUE
1313+ CACHE 1;
1314+
1315+ALTER SEQUENCE distroseriespackagecache_id_seq OWNED BY distroseriespackagecache.id;
1316+
1317 CREATE TABLE emailaddress (
1318 id integer NOT NULL,
1319 email text NOT NULL,
1320@@ -1119,6 +1834,14 @@
1321 CONSTRAINT emailaddress__is_linked__chk CHECK (((person IS NOT NULL) OR (account IS NOT NULL)))
1322 );
1323
1324+CREATE SEQUENCE emailaddress_id_seq
1325+ INCREMENT BY 1
1326+ NO MAXVALUE
1327+ NO MINVALUE
1328+ CACHE 1;
1329+
1330+ALTER SEQUENCE emailaddress_id_seq OWNED BY emailaddress.id;
1331+
1332 CREATE TABLE entitlement (
1333 id integer NOT NULL,
1334 person integer,
1335@@ -1140,6 +1863,17 @@
1336 CONSTRAINT only_one_target CHECK ((null_count(ARRAY[person, product, project, distribution]) = 3))
1337 );
1338
1339+CREATE SEQUENCE entitlement_id_seq
1340+ INCREMENT BY 1
1341+ NO MAXVALUE
1342+ NO MINVALUE
1343+ CACHE 1;
1344+
1345+ALTER SEQUENCE entitlement_id_seq OWNED BY entitlement.id;
1346+
1347+CREATE VIEW exclusivelocks AS
1348+ SELECT alllocks.procpid, alllocks.usename, alllocks.age, alllocks.relname, alllocks.mode, alllocks.granted, alllocks.current_query FROM alllocks WHERE (alllocks.mode !~~ '%Share%'::text);
1349+
1350 CREATE TABLE faq (
1351 id integer NOT NULL,
1352 title text NOT NULL,
1353@@ -1155,17 +1889,56 @@
1354 CONSTRAINT product_or_distro CHECK (((product IS NULL) <> (distribution IS NULL)))
1355 );
1356
1357+CREATE SEQUENCE faq_id_seq
1358+ INCREMENT BY 1
1359+ NO MAXVALUE
1360+ NO MINVALUE
1361+ CACHE 1;
1362+
1363+ALTER SEQUENCE faq_id_seq OWNED BY faq.id;
1364+
1365 CREATE TABLE featuredproject (
1366 id integer NOT NULL,
1367 pillar_name integer NOT NULL
1368 );
1369
1370+CREATE SEQUENCE featuredproject_id_seq
1371+ INCREMENT BY 1
1372+ NO MAXVALUE
1373+ NO MINVALUE
1374+ CACHE 1;
1375+
1376+ALTER SEQUENCE featuredproject_id_seq OWNED BY featuredproject.id;
1377+
1378+CREATE TABLE flatpackagesetinclusion (
1379+ id integer NOT NULL,
1380+ parent integer NOT NULL,
1381+ child integer NOT NULL
1382+);
1383+
1384+CREATE SEQUENCE flatpackagesetinclusion_id_seq
1385+ START WITH 1
1386+ INCREMENT BY 1
1387+ NO MAXVALUE
1388+ NO MINVALUE
1389+ CACHE 1;
1390+
1391+ALTER SEQUENCE flatpackagesetinclusion_id_seq OWNED BY flatpackagesetinclusion.id;
1392+
1393 CREATE TABLE fticache (
1394 id integer NOT NULL,
1395 tablename text NOT NULL,
1396 columns text NOT NULL
1397 );
1398
1399+CREATE SEQUENCE fticache_id_seq
1400+ INCREMENT BY 1
1401+ NO MAXVALUE
1402+ NO MINVALUE
1403+ CACHE 1;
1404+
1405+ALTER SEQUENCE fticache_id_seq OWNED BY fticache.id;
1406+
1407 CREATE TABLE gpgkey (
1408 id integer NOT NULL,
1409 owner integer NOT NULL,
1410@@ -1180,6 +1953,14 @@
1411 CONSTRAINT valid_keyid CHECK (valid_keyid(keyid))
1412 );
1413
1414+CREATE SEQUENCE gpgkey_id_seq
1415+ INCREMENT BY 1
1416+ NO MAXVALUE
1417+ NO MINVALUE
1418+ CACHE 1;
1419+
1420+ALTER SEQUENCE gpgkey_id_seq OWNED BY gpgkey.id;
1421+
1422 CREATE TABLE hwdevice (
1423 id integer NOT NULL,
1424 bus_vendor_id integer NOT NULL,
1425@@ -1189,6 +1970,14 @@
1426 submissions integer NOT NULL
1427 );
1428
1429+CREATE SEQUENCE hwdevice_id_seq
1430+ INCREMENT BY 1
1431+ NO MAXVALUE
1432+ NO MINVALUE
1433+ CACHE 1;
1434+
1435+ALTER SEQUENCE hwdevice_id_seq OWNED BY hwdevice.id;
1436+
1437 CREATE TABLE hwdeviceclass (
1438 id integer NOT NULL,
1439 device integer NOT NULL,
1440@@ -1196,12 +1985,28 @@
1441 sub_class integer
1442 );
1443
1444+CREATE SEQUENCE hwdeviceclass_id_seq
1445+ INCREMENT BY 1
1446+ NO MAXVALUE
1447+ NO MINVALUE
1448+ CACHE 1;
1449+
1450+ALTER SEQUENCE hwdeviceclass_id_seq OWNED BY hwdeviceclass.id;
1451+
1452 CREATE TABLE hwdevicedriverlink (
1453 id integer NOT NULL,
1454 device integer NOT NULL,
1455 driver integer
1456 );
1457
1458+CREATE SEQUENCE hwdevicedriverlink_id_seq
1459+ INCREMENT BY 1
1460+ NO MAXVALUE
1461+ NO MINVALUE
1462+ CACHE 1;
1463+
1464+ALTER SEQUENCE hwdevicedriverlink_id_seq OWNED BY hwdevicedriverlink.id;
1465+
1466 CREATE TABLE hwdevicenamevariant (
1467 id integer NOT NULL,
1468 vendor_name integer NOT NULL,
1469@@ -1210,6 +2015,44 @@
1470 submissions integer NOT NULL
1471 );
1472
1473+CREATE SEQUENCE hwdevicenamevariant_id_seq
1474+ INCREMENT BY 1
1475+ NO MAXVALUE
1476+ NO MINVALUE
1477+ CACHE 1;
1478+
1479+ALTER SEQUENCE hwdevicenamevariant_id_seq OWNED BY hwdevicenamevariant.id;
1480+
1481+CREATE TABLE hwdmihandle (
1482+ id integer NOT NULL,
1483+ handle integer NOT NULL,
1484+ type integer NOT NULL,
1485+ submission integer
1486+);
1487+
1488+CREATE SEQUENCE hwdmihandle_id_seq
1489+ INCREMENT BY 1
1490+ NO MAXVALUE
1491+ NO MINVALUE
1492+ CACHE 1;
1493+
1494+ALTER SEQUENCE hwdmihandle_id_seq OWNED BY hwdmihandle.id;
1495+
1496+CREATE TABLE hwdmivalue (
1497+ id integer NOT NULL,
1498+ key text,
1499+ value text,
1500+ handle integer NOT NULL
1501+);
1502+
1503+CREATE SEQUENCE hwdmivalue_id_seq
1504+ INCREMENT BY 1
1505+ NO MAXVALUE
1506+ NO MINVALUE
1507+ CACHE 1;
1508+
1509+ALTER SEQUENCE hwdmivalue_id_seq OWNED BY hwdmivalue.id;
1510+
1511 CREATE TABLE hwdriver (
1512 id integer NOT NULL,
1513 package_name text,
1514@@ -1217,6 +2060,20 @@
1515 license integer
1516 );
1517
1518+CREATE SEQUENCE hwdriver_id_seq
1519+ INCREMENT BY 1
1520+ NO MAXVALUE
1521+ NO MINVALUE
1522+ CACHE 1;
1523+
1524+ALTER SEQUENCE hwdriver_id_seq OWNED BY hwdriver.id;
1525+
1526+CREATE VIEW hwdrivernames AS
1527+ SELECT DISTINCT ON (hwdriver.name) hwdriver.id, hwdriver.name FROM hwdriver ORDER BY hwdriver.name, hwdriver.id;
1528+
1529+CREATE VIEW hwdriverpackagenames AS
1530+ SELECT DISTINCT ON (hwdriver.package_name) hwdriver.id, hwdriver.package_name FROM hwdriver ORDER BY hwdriver.package_name, hwdriver.id;
1531+
1532 CREATE TABLE hwsubmission (
1533 id integer NOT NULL,
1534 date_created timestamp without time zone NOT NULL,
1535@@ -1233,12 +2090,28 @@
1536 raw_emailaddress text
1537 );
1538
1539+CREATE SEQUENCE hwsubmission_id_seq
1540+ INCREMENT BY 1
1541+ NO MAXVALUE
1542+ NO MINVALUE
1543+ CACHE 1;
1544+
1545+ALTER SEQUENCE hwsubmission_id_seq OWNED BY hwsubmission.id;
1546+
1547 CREATE TABLE hwsubmissionbug (
1548 id integer NOT NULL,
1549 submission integer NOT NULL,
1550 bug integer NOT NULL
1551 );
1552
1553+CREATE SEQUENCE hwsubmissionbug_id_seq
1554+ INCREMENT BY 1
1555+ NO MAXVALUE
1556+ NO MINVALUE
1557+ CACHE 1;
1558+
1559+ALTER SEQUENCE hwsubmissionbug_id_seq OWNED BY hwsubmissionbug.id;
1560+
1561 CREATE TABLE hwsubmissiondevice (
1562 id integer NOT NULL,
1563 device_driver_link integer NOT NULL,
1564@@ -1247,11 +2120,27 @@
1565 hal_device_id integer NOT NULL
1566 );
1567
1568+CREATE SEQUENCE hwsubmissiondevice_id_seq
1569+ INCREMENT BY 1
1570+ NO MAXVALUE
1571+ NO MINVALUE
1572+ CACHE 1;
1573+
1574+ALTER SEQUENCE hwsubmissiondevice_id_seq OWNED BY hwsubmissiondevice.id;
1575+
1576 CREATE TABLE hwsystemfingerprint (
1577 id integer NOT NULL,
1578 fingerprint text NOT NULL
1579 );
1580
1581+CREATE SEQUENCE hwsystemfingerprint_id_seq
1582+ INCREMENT BY 1
1583+ NO MAXVALUE
1584+ NO MINVALUE
1585+ CACHE 1;
1586+
1587+ALTER SEQUENCE hwsystemfingerprint_id_seq OWNED BY hwsystemfingerprint.id;
1588+
1589 CREATE TABLE hwtest (
1590 id integer NOT NULL,
1591 namespace text,
1592@@ -1259,6 +2148,14 @@
1593 version text NOT NULL
1594 );
1595
1596+CREATE SEQUENCE hwtest_id_seq
1597+ INCREMENT BY 1
1598+ NO MAXVALUE
1599+ NO MINVALUE
1600+ CACHE 1;
1601+
1602+ALTER SEQUENCE hwtest_id_seq OWNED BY hwtest.id;
1603+
1604 CREATE TABLE hwtestanswer (
1605 id integer NOT NULL,
1606 test integer NOT NULL,
1607@@ -1272,12 +2169,28 @@
1608 CONSTRAINT hwtestanswer_check CHECK (((((choice IS NULL) AND (unit IS NOT NULL)) AND ((intval IS NULL) <> (floatval IS NULL))) OR ((((choice IS NOT NULL) AND (unit IS NULL)) AND (intval IS NULL)) AND (floatval IS NULL))))
1609 );
1610
1611+CREATE SEQUENCE hwtestanswer_id_seq
1612+ INCREMENT BY 1
1613+ NO MAXVALUE
1614+ NO MINVALUE
1615+ CACHE 1;
1616+
1617+ALTER SEQUENCE hwtestanswer_id_seq OWNED BY hwtestanswer.id;
1618+
1619 CREATE TABLE hwtestanswerchoice (
1620 id integer NOT NULL,
1621 choice text NOT NULL,
1622 test integer NOT NULL
1623 );
1624
1625+CREATE SEQUENCE hwtestanswerchoice_id_seq
1626+ INCREMENT BY 1
1627+ NO MAXVALUE
1628+ NO MINVALUE
1629+ CACHE 1;
1630+
1631+ALTER SEQUENCE hwtestanswerchoice_id_seq OWNED BY hwtestanswerchoice.id;
1632+
1633 CREATE TABLE hwtestanswercount (
1634 id integer NOT NULL,
1635 test integer NOT NULL,
1636@@ -1290,18 +2203,42 @@
1637 CONSTRAINT hwtestanswercount_check CHECK ((((((choice IS NULL) AND (average IS NOT NULL)) AND (sum_square IS NOT NULL)) AND (unit IS NOT NULL)) OR ((((choice IS NOT NULL) AND (average IS NULL)) AND (sum_square IS NULL)) AND (unit IS NULL))))
1638 );
1639
1640+CREATE SEQUENCE hwtestanswercount_id_seq
1641+ INCREMENT BY 1
1642+ NO MAXVALUE
1643+ NO MINVALUE
1644+ CACHE 1;
1645+
1646+ALTER SEQUENCE hwtestanswercount_id_seq OWNED BY hwtestanswercount.id;
1647+
1648 CREATE TABLE hwtestanswercountdevice (
1649 id integer NOT NULL,
1650 answer integer NOT NULL,
1651 device_driver integer NOT NULL
1652 );
1653
1654+CREATE SEQUENCE hwtestanswercountdevice_id_seq
1655+ INCREMENT BY 1
1656+ NO MAXVALUE
1657+ NO MINVALUE
1658+ CACHE 1;
1659+
1660+ALTER SEQUENCE hwtestanswercountdevice_id_seq OWNED BY hwtestanswercountdevice.id;
1661+
1662 CREATE TABLE hwtestanswerdevice (
1663 id integer NOT NULL,
1664 answer integer NOT NULL,
1665 device_driver integer NOT NULL
1666 );
1667
1668+CREATE SEQUENCE hwtestanswerdevice_id_seq
1669+ INCREMENT BY 1
1670+ NO MAXVALUE
1671+ NO MINVALUE
1672+ CACHE 1;
1673+
1674+ALTER SEQUENCE hwtestanswerdevice_id_seq OWNED BY hwtestanswerdevice.id;
1675+
1676 CREATE TABLE hwvendorid (
1677 id integer NOT NULL,
1678 bus integer NOT NULL,
1679@@ -1309,11 +2246,27 @@
1680 vendor_name integer NOT NULL
1681 );
1682
1683+CREATE SEQUENCE hwvendorid_id_seq
1684+ INCREMENT BY 1
1685+ NO MAXVALUE
1686+ NO MINVALUE
1687+ CACHE 1;
1688+
1689+ALTER SEQUENCE hwvendorid_id_seq OWNED BY hwvendorid.id;
1690+
1691 CREATE TABLE hwvendorname (
1692 id integer NOT NULL,
1693 name text NOT NULL
1694 );
1695
1696+CREATE SEQUENCE hwvendorname_id_seq
1697+ INCREMENT BY 1
1698+ NO MAXVALUE
1699+ NO MINVALUE
1700+ CACHE 1;
1701+
1702+ALTER SEQUENCE hwvendorname_id_seq OWNED BY hwvendorname.id;
1703+
1704 CREATE TABLE ircid (
1705 id integer NOT NULL,
1706 person integer NOT NULL,
1707@@ -1321,12 +2274,54 @@
1708 nickname text NOT NULL
1709 );
1710
1711+CREATE SEQUENCE ircid_id_seq
1712+ INCREMENT BY 1
1713+ NO MAXVALUE
1714+ NO MINVALUE
1715+ CACHE 1;
1716+
1717+ALTER SEQUENCE ircid_id_seq OWNED BY ircid.id;
1718+
1719 CREATE TABLE jabberid (
1720 id integer NOT NULL,
1721 person integer NOT NULL,
1722 jabberid text NOT NULL
1723 );
1724
1725+CREATE SEQUENCE jabberid_id_seq
1726+ INCREMENT BY 1
1727+ NO MAXVALUE
1728+ NO MINVALUE
1729+ CACHE 1;
1730+
1731+ALTER SEQUENCE jabberid_id_seq OWNED BY jabberid.id;
1732+
1733+CREATE TABLE job (
1734+ id integer NOT NULL,
1735+ requester integer,
1736+ reason text,
1737+ status integer NOT NULL,
1738+ progress integer,
1739+ last_report_seen timestamp without time zone,
1740+ next_report_due timestamp without time zone,
1741+ attempt_count integer DEFAULT 0 NOT NULL,
1742+ max_retries integer DEFAULT 0 NOT NULL,
1743+ log text,
1744+ scheduled_start timestamp without time zone,
1745+ lease_expires timestamp without time zone,
1746+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
1747+ date_started timestamp without time zone,
1748+ date_finished timestamp without time zone
1749+);
1750+
1751+CREATE SEQUENCE job_id_seq
1752+ INCREMENT BY 1
1753+ NO MAXVALUE
1754+ NO MINVALUE
1755+ CACHE 1;
1756+
1757+ALTER SEQUENCE job_id_seq OWNED BY job.id;
1758+
1759 CREATE TABLE karma (
1760 id integer NOT NULL,
1761 datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
1762@@ -1337,6 +2332,14 @@
1763 sourcepackagename integer
1764 );
1765
1766+CREATE SEQUENCE karma_id_seq
1767+ INCREMENT BY 1
1768+ NO MAXVALUE
1769+ NO MINVALUE
1770+ CACHE 1;
1771+
1772+ALTER SEQUENCE karma_id_seq OWNED BY karma.id;
1773+
1774 CREATE TABLE karmaaction (
1775 id integer NOT NULL,
1776 category integer,
1777@@ -1346,6 +2349,14 @@
1778 summary text NOT NULL
1779 );
1780
1781+CREATE SEQUENCE karmaaction_id_seq
1782+ INCREMENT BY 1
1783+ NO MAXVALUE
1784+ NO MINVALUE
1785+ CACHE 1;
1786+
1787+ALTER SEQUENCE karmaaction_id_seq OWNED BY karmaaction.id;
1788+
1789 CREATE TABLE karmacache (
1790 id integer NOT NULL,
1791 person integer NOT NULL,
1792@@ -1361,6 +2372,14 @@
1793 CONSTRAINT sourcepackagename_requires_distribution CHECK (((sourcepackagename IS NULL) OR (distribution IS NOT NULL)))
1794 );
1795
1796+CREATE SEQUENCE karmacache_id_seq
1797+ INCREMENT BY 1
1798+ NO MAXVALUE
1799+ NO MINVALUE
1800+ CACHE 1;
1801+
1802+ALTER SEQUENCE karmacache_id_seq OWNED BY karmacache.id;
1803+
1804 CREATE TABLE karmacategory (
1805 id integer NOT NULL,
1806 name text NOT NULL,
1807@@ -1368,12 +2387,28 @@
1808 summary text NOT NULL
1809 );
1810
1811+CREATE SEQUENCE karmacategory_id_seq
1812+ INCREMENT BY 1
1813+ NO MAXVALUE
1814+ NO MINVALUE
1815+ CACHE 1;
1816+
1817+ALTER SEQUENCE karmacategory_id_seq OWNED BY karmacategory.id;
1818+
1819 CREATE TABLE karmatotalcache (
1820 id integer NOT NULL,
1821 person integer NOT NULL,
1822 karma_total integer NOT NULL
1823 );
1824
1825+CREATE SEQUENCE karmatotalcache_id_seq
1826+ INCREMENT BY 1
1827+ NO MAXVALUE
1828+ NO MINVALUE
1829+ CACHE 1;
1830+
1831+ALTER SEQUENCE karmatotalcache_id_seq OWNED BY karmatotalcache.id;
1832+
1833 CREATE TABLE language (
1834 id integer NOT NULL,
1835 code text NOT NULL,
1836@@ -1387,6 +2422,14 @@
1837 CONSTRAINT valid_language CHECK (((pluralforms IS NULL) = (pluralexpression IS NULL)))
1838 );
1839
1840+CREATE SEQUENCE language_id_seq
1841+ INCREMENT BY 1
1842+ NO MAXVALUE
1843+ NO MINVALUE
1844+ CACHE 1;
1845+
1846+ALTER SEQUENCE language_id_seq OWNED BY language.id;
1847+
1848 CREATE TABLE languagepack (
1849 id integer NOT NULL,
1850 file integer NOT NULL,
1851@@ -1398,6 +2441,14 @@
1852 CONSTRAINT valid_updates CHECK ((((type = 2) AND (updates IS NOT NULL)) OR ((type = 1) AND (updates IS NULL))))
1853 );
1854
1855+CREATE SEQUENCE languagepack_id_seq
1856+ INCREMENT BY 1
1857+ NO MAXVALUE
1858+ NO MINVALUE
1859+ CACHE 1;
1860+
1861+ALTER SEQUENCE languagepack_id_seq OWNED BY languagepack.id;
1862+
1863 CREATE TABLE launchpaddatabaserevision (
1864 major integer NOT NULL,
1865 minor integer NOT NULL,
1866@@ -1411,6 +2462,22 @@
1867 dateupdated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL
1868 );
1869
1870+CREATE SEQUENCE launchpadstatistic_id_seq
1871+ INCREMENT BY 1
1872+ NO MAXVALUE
1873+ NO MINVALUE
1874+ CACHE 1;
1875+
1876+ALTER SEQUENCE launchpadstatistic_id_seq OWNED BY launchpadstatistic.id;
1877+
1878+CREATE SEQUENCE libraryfilealias_id_seq
1879+ INCREMENT BY 1
1880+ NO MAXVALUE
1881+ NO MINVALUE
1882+ CACHE 1;
1883+
1884+ALTER SEQUENCE libraryfilealias_id_seq OWNED BY libraryfilealias.id;
1885+
1886 CREATE TABLE libraryfilecontent (
1887 id integer NOT NULL,
1888 datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
1889@@ -1418,8 +2485,33 @@
1890 filesize integer NOT NULL,
1891 sha1 character(40) NOT NULL,
1892 deleted boolean DEFAULT false NOT NULL,
1893- md5 character(32) NOT NULL
1894-);
1895+ md5 character(32) NOT NULL,
1896+ sha256 character(64)
1897+);
1898+
1899+CREATE SEQUENCE libraryfilecontent_id_seq
1900+ INCREMENT BY 1
1901+ NO MAXVALUE
1902+ NO MINVALUE
1903+ CACHE 1;
1904+
1905+ALTER SEQUENCE libraryfilecontent_id_seq OWNED BY libraryfilecontent.id;
1906+
1907+CREATE TABLE libraryfiledownloadcount (
1908+ id integer NOT NULL,
1909+ libraryfilealias integer NOT NULL,
1910+ day date NOT NULL,
1911+ count integer NOT NULL,
1912+ country integer
1913+);
1914+
1915+CREATE SEQUENCE libraryfiledownloadcount_id_seq
1916+ INCREMENT BY 1
1917+ NO MAXVALUE
1918+ NO MINVALUE
1919+ CACHE 1;
1920+
1921+ALTER SEQUENCE libraryfiledownloadcount_id_seq OWNED BY libraryfiledownloadcount.id;
1922
1923 CREATE TABLE logintoken (
1924 id integer NOT NULL,
1925@@ -1435,6 +2527,14 @@
1926 CONSTRAINT valid_fingerprint CHECK (((fingerprint IS NULL) OR valid_fingerprint(fingerprint)))
1927 );
1928
1929+CREATE SEQUENCE logintoken_id_seq
1930+ INCREMENT BY 1
1931+ NO MAXVALUE
1932+ NO MINVALUE
1933+ CACHE 1;
1934+
1935+ALTER SEQUENCE logintoken_id_seq OWNED BY logintoken.id;
1936+
1937 CREATE TABLE mailinglist (
1938 id integer NOT NULL,
1939 team integer NOT NULL,
1940@@ -1447,6 +2547,14 @@
1941 welcome_message text
1942 );
1943
1944+CREATE SEQUENCE mailinglist_id_seq
1945+ INCREMENT BY 1
1946+ NO MAXVALUE
1947+ NO MINVALUE
1948+ CACHE 1;
1949+
1950+ALTER SEQUENCE mailinglist_id_seq OWNED BY mailinglist.id;
1951+
1952 CREATE TABLE mailinglistban (
1953 id integer NOT NULL,
1954 person integer NOT NULL,
1955@@ -1455,6 +2563,14 @@
1956 reason text NOT NULL
1957 );
1958
1959+CREATE SEQUENCE mailinglistban_id_seq
1960+ INCREMENT BY 1
1961+ NO MAXVALUE
1962+ NO MINVALUE
1963+ CACHE 1;
1964+
1965+ALTER SEQUENCE mailinglistban_id_seq OWNED BY mailinglistban.id;
1966+
1967 CREATE TABLE mailinglistsubscription (
1968 id integer NOT NULL,
1969 person integer NOT NULL,
1970@@ -1463,6 +2579,14 @@
1971 email_address integer
1972 );
1973
1974+CREATE SEQUENCE mailinglistsubscription_id_seq
1975+ INCREMENT BY 1
1976+ NO MAXVALUE
1977+ NO MINVALUE
1978+ CACHE 1;
1979+
1980+ALTER SEQUENCE mailinglistsubscription_id_seq OWNED BY mailinglistsubscription.id;
1981+
1982 CREATE TABLE mentoringoffer (
1983 id integer NOT NULL,
1984 owner integer NOT NULL,
1985@@ -1473,6 +2597,29 @@
1986 CONSTRAINT context_required CHECK (((bug IS NULL) <> (specification IS NULL)))
1987 );
1988
1989+CREATE SEQUENCE mentoringoffer_id_seq
1990+ INCREMENT BY 1
1991+ NO MAXVALUE
1992+ NO MINVALUE
1993+ CACHE 1;
1994+
1995+ALTER SEQUENCE mentoringoffer_id_seq OWNED BY mentoringoffer.id;
1996+
1997+CREATE TABLE mergedirectivejob (
1998+ id integer NOT NULL,
1999+ job integer NOT NULL,
2000+ merge_directive integer NOT NULL,
2001+ action integer NOT NULL
2002+);
2003+
2004+CREATE SEQUENCE mergedirectivejob_id_seq
2005+ INCREMENT BY 1
2006+ NO MAXVALUE
2007+ NO MINVALUE
2008+ CACHE 1;
2009+
2010+ALTER SEQUENCE mergedirectivejob_id_seq OWNED BY mergedirectivejob.id;
2011+
2012 CREATE TABLE message (
2013 id integer NOT NULL,
2014 datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
2015@@ -1485,6 +2632,14 @@
2016 raw integer
2017 );
2018
2019+CREATE SEQUENCE message_id_seq
2020+ INCREMENT BY 1
2021+ NO MAXVALUE
2022+ NO MINVALUE
2023+ CACHE 1;
2024+
2025+ALTER SEQUENCE message_id_seq OWNED BY message.id;
2026+
2027 CREATE TABLE messageapproval (
2028 id integer NOT NULL,
2029 posted_by integer NOT NULL,
2030@@ -1498,6 +2653,14 @@
2031 message integer NOT NULL
2032 );
2033
2034+CREATE SEQUENCE messageapproval_id_seq
2035+ INCREMENT BY 1
2036+ NO MAXVALUE
2037+ NO MINVALUE
2038+ CACHE 1;
2039+
2040+ALTER SEQUENCE messageapproval_id_seq OWNED BY messageapproval.id;
2041+
2042 CREATE TABLE messagechunk (
2043 id integer NOT NULL,
2044 message integer NOT NULL,
2045@@ -1508,21 +2671,38 @@
2046 CONSTRAINT text_or_content CHECK ((((blob IS NULL) AND (content IS NULL)) OR ((blob IS NULL) <> (content IS NULL))))
2047 );
2048
2049+CREATE SEQUENCE messagechunk_id_seq
2050+ INCREMENT BY 1
2051+ NO MAXVALUE
2052+ NO MINVALUE
2053+ CACHE 1;
2054+
2055+ALTER SEQUENCE messagechunk_id_seq OWNED BY messagechunk.id;
2056+
2057 CREATE TABLE milestone (
2058 id integer NOT NULL,
2059 product integer,
2060 name text NOT NULL,
2061 distribution integer,
2062 dateexpected timestamp without time zone,
2063- visible boolean DEFAULT true NOT NULL,
2064+ active boolean DEFAULT true NOT NULL,
2065 productseries integer,
2066 distroseries integer,
2067 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2068- description text,
2069+ summary text,
2070+ codename text,
2071 CONSTRAINT valid_name CHECK (valid_name(name)),
2072 CONSTRAINT valid_target CHECK ((NOT ((product IS NULL) AND (distribution IS NULL))))
2073 );
2074
2075+CREATE SEQUENCE milestone_id_seq
2076+ INCREMENT BY 1
2077+ NO MAXVALUE
2078+ NO MINVALUE
2079+ CACHE 1;
2080+
2081+ALTER SEQUENCE milestone_id_seq OWNED BY milestone.id;
2082+
2083 CREATE TABLE mirror (
2084 id integer NOT NULL,
2085 owner integer NOT NULL,
2086@@ -1536,6 +2716,14 @@
2087 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2088 );
2089
2090+CREATE SEQUENCE mirror_id_seq
2091+ INCREMENT BY 1
2092+ NO MAXVALUE
2093+ NO MINVALUE
2094+ CACHE 1;
2095+
2096+ALTER SEQUENCE mirror_id_seq OWNED BY mirror.id;
2097+
2098 CREATE TABLE mirrorcdimagedistroseries (
2099 id integer NOT NULL,
2100 distribution_mirror integer NOT NULL,
2101@@ -1544,6 +2732,14 @@
2102 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2103 );
2104
2105+CREATE SEQUENCE mirrorcdimagedistroseries_id_seq
2106+ INCREMENT BY 1
2107+ NO MAXVALUE
2108+ NO MINVALUE
2109+ CACHE 1;
2110+
2111+ALTER SEQUENCE mirrorcdimagedistroseries_id_seq OWNED BY mirrorcdimagedistroseries.id;
2112+
2113 CREATE TABLE mirrorcontent (
2114 id integer NOT NULL,
2115 mirror integer NOT NULL,
2116@@ -1552,6 +2748,14 @@
2117 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2118 );
2119
2120+CREATE SEQUENCE mirrorcontent_id_seq
2121+ INCREMENT BY 1
2122+ NO MAXVALUE
2123+ NO MINVALUE
2124+ CACHE 1;
2125+
2126+ALTER SEQUENCE mirrorcontent_id_seq OWNED BY mirrorcontent.id;
2127+
2128 CREATE TABLE mirrordistroarchseries (
2129 id integer NOT NULL,
2130 distribution_mirror integer NOT NULL,
2131@@ -1562,6 +2766,14 @@
2132 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2133 );
2134
2135+CREATE SEQUENCE mirrordistroarchseries_id_seq
2136+ INCREMENT BY 1
2137+ NO MAXVALUE
2138+ NO MINVALUE
2139+ CACHE 1;
2140+
2141+ALTER SEQUENCE mirrordistroarchseries_id_seq OWNED BY mirrordistroarchseries.id;
2142+
2143 CREATE TABLE mirrordistroseriessource (
2144 id integer NOT NULL,
2145 distribution_mirror integer NOT NULL,
2146@@ -1572,6 +2784,14 @@
2147 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2148 );
2149
2150+CREATE SEQUENCE mirrordistroseriessource_id_seq
2151+ INCREMENT BY 1
2152+ NO MAXVALUE
2153+ NO MINVALUE
2154+ CACHE 1;
2155+
2156+ALTER SEQUENCE mirrordistroseriessource_id_seq OWNED BY mirrordistroseriessource.id;
2157+
2158 CREATE TABLE mirrorproberecord (
2159 id integer NOT NULL,
2160 distribution_mirror integer NOT NULL,
2161@@ -1579,6 +2799,14 @@
2162 date_created timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL
2163 );
2164
2165+CREATE SEQUENCE mirrorproberecord_id_seq
2166+ INCREMENT BY 1
2167+ NO MAXVALUE
2168+ NO MINVALUE
2169+ CACHE 1;
2170+
2171+ALTER SEQUENCE mirrorproberecord_id_seq OWNED BY mirrorproberecord.id;
2172+
2173 CREATE TABLE mirrorsourcecontent (
2174 id integer NOT NULL,
2175 mirror integer NOT NULL,
2176@@ -1587,6 +2815,14 @@
2177 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2178 );
2179
2180+CREATE SEQUENCE mirrorsourcecontent_id_seq
2181+ INCREMENT BY 1
2182+ NO MAXVALUE
2183+ NO MINVALUE
2184+ CACHE 1;
2185+
2186+ALTER SEQUENCE mirrorsourcecontent_id_seq OWNED BY mirrorsourcecontent.id;
2187+
2188 CREATE TABLE nameblacklist (
2189 id integer NOT NULL,
2190 regexp text NOT NULL,
2191@@ -1594,6 +2830,14 @@
2192 CONSTRAINT valid_regexp CHECK (valid_regexp(regexp))
2193 );
2194
2195+CREATE SEQUENCE nameblacklist_id_seq
2196+ INCREMENT BY 1
2197+ NO MAXVALUE
2198+ NO MINVALUE
2199+ CACHE 1;
2200+
2201+ALTER SEQUENCE nameblacklist_id_seq OWNED BY nameblacklist.id;
2202+
2203 CREATE TABLE oauthaccesstoken (
2204 id integer NOT NULL,
2205 consumer integer NOT NULL,
2206@@ -1611,6 +2855,14 @@
2207 CONSTRAINT sourcepackagename_needs_distro CHECK (((sourcepackagename IS NULL) OR (distribution IS NOT NULL)))
2208 );
2209
2210+CREATE SEQUENCE oauthaccesstoken_id_seq
2211+ INCREMENT BY 1
2212+ NO MAXVALUE
2213+ NO MINVALUE
2214+ CACHE 1;
2215+
2216+ALTER SEQUENCE oauthaccesstoken_id_seq OWNED BY oauthaccesstoken.id;
2217+
2218 CREATE TABLE oauthconsumer (
2219 id integer NOT NULL,
2220 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2221@@ -1619,6 +2871,14 @@
2222 secret text
2223 );
2224
2225+CREATE SEQUENCE oauthconsumer_id_seq
2226+ INCREMENT BY 1
2227+ NO MAXVALUE
2228+ NO MINVALUE
2229+ CACHE 1;
2230+
2231+ALTER SEQUENCE oauthconsumer_id_seq OWNED BY oauthconsumer.id;
2232+
2233 CREATE TABLE oauthnonce (
2234 id integer NOT NULL,
2235 request_timestamp timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2236@@ -1626,6 +2886,14 @@
2237 access_token integer NOT NULL
2238 );
2239
2240+CREATE SEQUENCE oauthnonce_id_seq
2241+ INCREMENT BY 1
2242+ NO MAXVALUE
2243+ NO MINVALUE
2244+ CACHE 1;
2245+
2246+ALTER SEQUENCE oauthnonce_id_seq OWNED BY oauthnonce.id;
2247+
2248 CREATE TABLE oauthrequesttoken (
2249 id integer NOT NULL,
2250 consumer integer NOT NULL,
2251@@ -1645,6 +2913,14 @@
2252 CONSTRAINT sourcepackagename_needs_distro CHECK (((sourcepackagename IS NULL) OR (distribution IS NOT NULL)))
2253 );
2254
2255+CREATE SEQUENCE oauthrequesttoken_id_seq
2256+ INCREMENT BY 1
2257+ NO MAXVALUE
2258+ NO MINVALUE
2259+ CACHE 1;
2260+
2261+ALTER SEQUENCE oauthrequesttoken_id_seq OWNED BY oauthrequesttoken.id;
2262+
2263 CREATE TABLE officialbugtag (
2264 id integer NOT NULL,
2265 tag text NOT NULL,
2266@@ -1654,7 +2930,15 @@
2267 CONSTRAINT context_required CHECK (((product IS NOT NULL) OR (distribution IS NOT NULL)))
2268 );
2269
2270-CREATE TABLE openidassociations (
2271+CREATE SEQUENCE officialbugtag_id_seq
2272+ INCREMENT BY 1
2273+ NO MAXVALUE
2274+ NO MINVALUE
2275+ CACHE 1;
2276+
2277+ALTER SEQUENCE officialbugtag_id_seq OWNED BY officialbugtag.id;
2278+
2279+CREATE TABLE openidassociation (
2280 server_url character varying(2047) NOT NULL,
2281 handle character varying(255) NOT NULL,
2282 secret bytea,
2283@@ -1666,13 +2950,43 @@
2284
2285 CREATE TABLE openidauthorization (
2286 id integer NOT NULL,
2287- person integer NOT NULL,
2288+ account integer NOT NULL,
2289 client_id text,
2290 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2291 date_expires timestamp without time zone NOT NULL,
2292 trust_root text NOT NULL
2293 );
2294
2295+CREATE SEQUENCE openidauthorization_id_seq
2296+ INCREMENT BY 1
2297+ NO MAXVALUE
2298+ NO MINVALUE
2299+ CACHE 1;
2300+
2301+ALTER SEQUENCE openidauthorization_id_seq OWNED BY openidauthorization.id;
2302+
2303+CREATE TABLE openidconsumerassociation (
2304+ server_url character varying(2047) NOT NULL,
2305+ handle character varying(255) NOT NULL,
2306+ secret bytea,
2307+ issued integer,
2308+ lifetime integer,
2309+ assoc_type character varying(64),
2310+ CONSTRAINT secret_length_constraint CHECK ((length(secret) <= 128))
2311+);
2312+
2313+CREATE TABLE openidconsumernonce (
2314+ server_url character varying(2047) NOT NULL,
2315+ "timestamp" integer NOT NULL,
2316+ salt character(40) NOT NULL
2317+);
2318+
2319+CREATE TABLE openidnonce (
2320+ server_url character varying(2047) NOT NULL,
2321+ "timestamp" integer NOT NULL,
2322+ salt character(40) NOT NULL
2323+);
2324+
2325 CREATE TABLE openidrpconfig (
2326 id integer NOT NULL,
2327 trust_root text NOT NULL,
2328@@ -1680,9 +2994,19 @@
2329 description text NOT NULL,
2330 logo integer,
2331 allowed_sreg text,
2332- creation_rationale integer DEFAULT 13 NOT NULL
2333+ creation_rationale integer DEFAULT 13 NOT NULL,
2334+ can_query_any_team boolean DEFAULT false NOT NULL,
2335+ auto_authorize boolean DEFAULT false NOT NULL
2336 );
2337
2338+CREATE SEQUENCE openidrpconfig_id_seq
2339+ INCREMENT BY 1
2340+ NO MAXVALUE
2341+ NO MINVALUE
2342+ CACHE 1;
2343+
2344+ALTER SEQUENCE openidrpconfig_id_seq OWNED BY openidrpconfig.id;
2345+
2346 CREATE TABLE openidrpsummary (
2347 id integer NOT NULL,
2348 account integer NOT NULL,
2349@@ -1693,6 +3017,14 @@
2350 total_logins integer DEFAULT 1 NOT NULL
2351 );
2352
2353+CREATE SEQUENCE openidrpsummary_id_seq
2354+ INCREMENT BY 1
2355+ NO MAXVALUE
2356+ NO MINVALUE
2357+ CACHE 1;
2358+
2359+ALTER SEQUENCE openidrpsummary_id_seq OWNED BY openidrpsummary.id;
2360+
2361 CREATE TABLE packagebugsupervisor (
2362 id integer NOT NULL,
2363 distribution integer NOT NULL,
2364@@ -1701,6 +3033,14 @@
2365 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2366 );
2367
2368+CREATE SEQUENCE packagebugsupervisor_id_seq
2369+ INCREMENT BY 1
2370+ NO MAXVALUE
2371+ NO MINVALUE
2372+ CACHE 1;
2373+
2374+ALTER SEQUENCE packagebugsupervisor_id_seq OWNED BY packagebugsupervisor.id;
2375+
2376 CREATE TABLE packagecopyrequest (
2377 id integer NOT NULL,
2378 target_archive integer NOT NULL,
2379@@ -1720,6 +3060,14 @@
2380 date_completed timestamp without time zone
2381 );
2382
2383+CREATE SEQUENCE packagecopyrequest_id_seq
2384+ INCREMENT BY 1
2385+ NO MAXVALUE
2386+ NO MINVALUE
2387+ CACHE 1;
2388+
2389+ALTER SEQUENCE packagecopyrequest_id_seq OWNED BY packagecopyrequest.id;
2390+
2391 CREATE TABLE packagediff (
2392 id integer NOT NULL,
2393 date_requested timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2394@@ -1728,9 +3076,18 @@
2395 to_source integer NOT NULL,
2396 date_fulfilled timestamp without time zone,
2397 diff_content integer,
2398+ status integer DEFAULT 0 NOT NULL,
2399 CONSTRAINT distinct_sources CHECK ((from_source <> to_source))
2400 );
2401
2402+CREATE SEQUENCE packagediff_id_seq
2403+ INCREMENT BY 1
2404+ NO MAXVALUE
2405+ NO MINVALUE
2406+ CACHE 1;
2407+
2408+ALTER SEQUENCE packagediff_id_seq OWNED BY packagediff.id;
2409+
2410 CREATE TABLE packageselection (
2411 id integer NOT NULL,
2412 distroseries integer NOT NULL,
2413@@ -1743,17 +3100,81 @@
2414 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2415 );
2416
2417+CREATE SEQUENCE packageselection_id_seq
2418+ INCREMENT BY 1
2419+ NO MAXVALUE
2420+ NO MINVALUE
2421+ CACHE 1;
2422+
2423+ALTER SEQUENCE packageselection_id_seq OWNED BY packageselection.id;
2424+
2425+CREATE TABLE packageset (
2426+ id integer NOT NULL,
2427+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2428+ owner integer NOT NULL,
2429+ name text NOT NULL,
2430+ description text NOT NULL,
2431+ CONSTRAINT packageset_name_check CHECK (valid_name(name))
2432+);
2433+
2434+CREATE SEQUENCE packageset_id_seq
2435+ START WITH 1
2436+ INCREMENT BY 1
2437+ NO MAXVALUE
2438+ NO MINVALUE
2439+ CACHE 1;
2440+
2441+ALTER SEQUENCE packageset_id_seq OWNED BY packageset.id;
2442+
2443+CREATE TABLE packagesetinclusion (
2444+ id integer NOT NULL,
2445+ parent integer NOT NULL,
2446+ child integer NOT NULL
2447+);
2448+
2449+CREATE SEQUENCE packagesetinclusion_id_seq
2450+ START WITH 1
2451+ INCREMENT BY 1
2452+ NO MAXVALUE
2453+ NO MINVALUE
2454+ CACHE 1;
2455+
2456+ALTER SEQUENCE packagesetinclusion_id_seq OWNED BY packagesetinclusion.id;
2457+
2458+CREATE TABLE packagesetsources (
2459+ id integer NOT NULL,
2460+ packageset integer NOT NULL,
2461+ sourcepackagename integer NOT NULL
2462+);
2463+
2464+CREATE SEQUENCE packagesetsources_id_seq
2465+ START WITH 1
2466+ INCREMENT BY 1
2467+ NO MAXVALUE
2468+ NO MINVALUE
2469+ CACHE 1;
2470+
2471+ALTER SEQUENCE packagesetsources_id_seq OWNED BY packagesetsources.id;
2472+
2473 CREATE TABLE packageupload (
2474 id integer NOT NULL,
2475 status integer DEFAULT 0 NOT NULL,
2476 distroseries integer NOT NULL,
2477 pocket integer NOT NULL,
2478- changesfile integer NOT NULL,
2479+ changesfile integer,
2480 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2481 signing_key integer,
2482 archive integer NOT NULL
2483 );
2484
2485+CREATE SEQUENCE packageupload_id_seq
2486+ INCREMENT BY 1
2487+ NO MAXVALUE
2488+ NO MINVALUE
2489+ CACHE 1;
2490+
2491+ALTER SEQUENCE packageupload_id_seq OWNED BY packageupload.id;
2492+
2493 CREATE TABLE packageuploadbuild (
2494 id integer NOT NULL,
2495 packageupload integer NOT NULL,
2496@@ -1761,6 +3182,14 @@
2497 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2498 );
2499
2500+CREATE SEQUENCE packageuploadbuild_id_seq
2501+ INCREMENT BY 1
2502+ NO MAXVALUE
2503+ NO MINVALUE
2504+ CACHE 1;
2505+
2506+ALTER SEQUENCE packageuploadbuild_id_seq OWNED BY packageuploadbuild.id;
2507+
2508 CREATE TABLE packageuploadcustom (
2509 id integer NOT NULL,
2510 packageupload integer NOT NULL,
2511@@ -1769,6 +3198,14 @@
2512 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2513 );
2514
2515+CREATE SEQUENCE packageuploadcustom_id_seq
2516+ INCREMENT BY 1
2517+ NO MAXVALUE
2518+ NO MINVALUE
2519+ CACHE 1;
2520+
2521+ALTER SEQUENCE packageuploadcustom_id_seq OWNED BY packageuploadcustom.id;
2522+
2523 CREATE TABLE packageuploadsource (
2524 id integer NOT NULL,
2525 packageupload integer NOT NULL,
2526@@ -1776,6 +3213,14 @@
2527 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2528 );
2529
2530+CREATE SEQUENCE packageuploadsource_id_seq
2531+ INCREMENT BY 1
2532+ NO MAXVALUE
2533+ NO MINVALUE
2534+ CACHE 1;
2535+
2536+ALTER SEQUENCE packageuploadsource_id_seq OWNED BY packageuploadsource.id;
2537+
2538 CREATE TABLE packaging (
2539 packaging integer NOT NULL,
2540 id integer DEFAULT nextval(('packaging_id_seq'::text)::regclass) NOT NULL,
2541@@ -1787,6 +3232,37 @@
2542 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2543 );
2544
2545+CREATE SEQUENCE packaging_id_seq
2546+ INCREMENT BY 1
2547+ NO MAXVALUE
2548+ NO MINVALUE
2549+ CACHE 1;
2550+
2551+ALTER SEQUENCE packaging_id_seq OWNED BY packaging.id;
2552+
2553+CREATE TABLE parsedapachelog (
2554+ id integer NOT NULL,
2555+ first_line text NOT NULL,
2556+ bytes_read integer NOT NULL,
2557+ date_last_parsed timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2558+);
2559+
2560+CREATE SEQUENCE parsedapachelog_id_seq
2561+ INCREMENT BY 1
2562+ NO MAXVALUE
2563+ NO MINVALUE
2564+ CACHE 1;
2565+
2566+ALTER SEQUENCE parsedapachelog_id_seq OWNED BY parsedapachelog.id;
2567+
2568+CREATE SEQUENCE person_id_seq
2569+ INCREMENT BY 1
2570+ NO MAXVALUE
2571+ NO MINVALUE
2572+ CACHE 1;
2573+
2574+ALTER SEQUENCE person_id_seq OWNED BY person.id;
2575+
2576 CREATE TABLE personlanguage (
2577 id integer NOT NULL,
2578 person integer NOT NULL,
2579@@ -1794,6 +3270,14 @@
2580 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2581 );
2582
2583+CREATE SEQUENCE personlanguage_id_seq
2584+ INCREMENT BY 1
2585+ NO MAXVALUE
2586+ NO MINVALUE
2587+ CACHE 1;
2588+
2589+ALTER SEQUENCE personlanguage_id_seq OWNED BY personlanguage.id;
2590+
2591 CREATE TABLE personlocation (
2592 id integer NOT NULL,
2593 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2594@@ -1808,6 +3292,14 @@
2595 CONSTRAINT latitude_and_longitude_together CHECK (((latitude IS NULL) = (longitude IS NULL)))
2596 );
2597
2598+CREATE SEQUENCE personlocation_id_seq
2599+ INCREMENT BY 1
2600+ NO MAXVALUE
2601+ NO MINVALUE
2602+ CACHE 1;
2603+
2604+ALTER SEQUENCE personlocation_id_seq OWNED BY personlocation.id;
2605+
2606 CREATE TABLE personnotification (
2607 id integer NOT NULL,
2608 person integer NOT NULL,
2609@@ -1817,6 +3309,14 @@
2610 subject text NOT NULL
2611 );
2612
2613+CREATE SEQUENCE personnotification_id_seq
2614+ INCREMENT BY 1
2615+ NO MAXVALUE
2616+ NO MINVALUE
2617+ CACHE 1;
2618+
2619+ALTER SEQUENCE personnotification_id_seq OWNED BY personnotification.id;
2620+
2621 CREATE TABLE pillarname (
2622 id integer NOT NULL,
2623 name text NOT NULL,
2624@@ -1829,6 +3329,14 @@
2625 CONSTRAINT valid_name CHECK (valid_name(name))
2626 );
2627
2628+CREATE SEQUENCE pillarname_id_seq
2629+ INCREMENT BY 1
2630+ NO MAXVALUE
2631+ NO MINVALUE
2632+ CACHE 1;
2633+
2634+ALTER SEQUENCE pillarname_id_seq OWNED BY pillarname.id;
2635+
2636 CREATE TABLE pocketchroot (
2637 id integer NOT NULL,
2638 distroarchseries integer,
2639@@ -1837,6 +3345,14 @@
2640 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2641 );
2642
2643+CREATE SEQUENCE pocketchroot_id_seq
2644+ INCREMENT BY 1
2645+ NO MAXVALUE
2646+ NO MINVALUE
2647+ CACHE 1;
2648+
2649+ALTER SEQUENCE pocketchroot_id_seq OWNED BY pocketchroot.id;
2650+
2651 CREATE TABLE pocomment (
2652 id integer NOT NULL,
2653 potemplate integer NOT NULL,
2654@@ -1848,6 +3364,31 @@
2655 person integer
2656 );
2657
2658+CREATE SEQUENCE pocomment_id_seq
2659+ INCREMENT BY 1
2660+ NO MAXVALUE
2661+ NO MINVALUE
2662+ CACHE 1;
2663+
2664+ALTER SEQUENCE pocomment_id_seq OWNED BY pocomment.id;
2665+
2666+CREATE TABLE poexportrequest (
2667+ id integer NOT NULL,
2668+ person integer NOT NULL,
2669+ potemplate integer NOT NULL,
2670+ pofile integer,
2671+ format integer NOT NULL,
2672+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2673+);
2674+
2675+CREATE SEQUENCE poexportrequest_id_seq
2676+ INCREMENT BY 1
2677+ NO MAXVALUE
2678+ NO MINVALUE
2679+ CACHE 1;
2680+
2681+ALTER SEQUENCE poexportrequest_id_seq OWNED BY poexportrequest.id;
2682+
2683 CREATE TABLE pofile (
2684 id integer NOT NULL,
2685 potemplate integer NOT NULL,
2686@@ -1871,11 +3412,101 @@
2687 CONSTRAINT valid_variant CHECK ((variant <> ''::text))
2688 );
2689
2690+CREATE SEQUENCE pofile_id_seq
2691+ INCREMENT BY 1
2692+ NO MAXVALUE
2693+ NO MINVALUE
2694+ CACHE 1;
2695+
2696+ALTER SEQUENCE pofile_id_seq OWNED BY pofile.id;
2697+
2698+CREATE TABLE pofiletranslator (
2699+ id integer NOT NULL,
2700+ person integer NOT NULL,
2701+ pofile integer NOT NULL,
2702+ latest_message integer NOT NULL,
2703+ date_last_touched timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2704+);
2705+
2706+CREATE SEQUENCE pofiletranslator_id_seq
2707+ INCREMENT BY 1
2708+ NO MAXVALUE
2709+ NO MINVALUE
2710+ CACHE 1;
2711+
2712+ALTER SEQUENCE pofiletranslator_id_seq OWNED BY pofiletranslator.id;
2713+
2714+CREATE TABLE poll (
2715+ id integer NOT NULL,
2716+ team integer NOT NULL,
2717+ name text NOT NULL,
2718+ title text NOT NULL,
2719+ dateopens timestamp without time zone NOT NULL,
2720+ datecloses timestamp without time zone NOT NULL,
2721+ proposition text NOT NULL,
2722+ type integer NOT NULL,
2723+ allowspoilt boolean DEFAULT false NOT NULL,
2724+ secrecy integer NOT NULL,
2725+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2726+ CONSTRAINT sane_dates CHECK ((dateopens < datecloses))
2727+);
2728+
2729+CREATE SEQUENCE poll_id_seq
2730+ INCREMENT BY 1
2731+ NO MAXVALUE
2732+ NO MINVALUE
2733+ CACHE 1;
2734+
2735+ALTER SEQUENCE poll_id_seq OWNED BY poll.id;
2736+
2737+CREATE TABLE polloption (
2738+ id integer NOT NULL,
2739+ poll integer NOT NULL,
2740+ name text NOT NULL,
2741+ title text NOT NULL,
2742+ active boolean DEFAULT true NOT NULL,
2743+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2744+);
2745+
2746+CREATE SEQUENCE polloption_id_seq
2747+ INCREMENT BY 1
2748+ NO MAXVALUE
2749+ NO MINVALUE
2750+ CACHE 1;
2751+
2752+ALTER SEQUENCE polloption_id_seq OWNED BY polloption.id;
2753+
2754 CREATE TABLE pomsgid (
2755 id integer NOT NULL,
2756 msgid text NOT NULL
2757 );
2758
2759+CREATE SEQUENCE pomsgid_id_seq
2760+ INCREMENT BY 1
2761+ NO MAXVALUE
2762+ NO MINVALUE
2763+ CACHE 1;
2764+
2765+ALTER SEQUENCE pomsgid_id_seq OWNED BY pomsgid.id;
2766+
2767+CREATE TABLE posubscription (
2768+ id integer NOT NULL,
2769+ person integer NOT NULL,
2770+ potemplate integer NOT NULL,
2771+ language integer,
2772+ notificationinterval interval,
2773+ lastnotified timestamp without time zone,
2774+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2775+);
2776+
2777+CREATE SEQUENCE posubscription_id_seq
2778+ INCREMENT BY 1
2779+ NO MAXVALUE
2780+ NO MINVALUE
2781+ CACHE 1;
2782+
2783+ALTER SEQUENCE posubscription_id_seq OWNED BY posubscription.id;
2784+
2785 CREATE TABLE potemplate (
2786 id integer NOT NULL,
2787 priority integer DEFAULT 0 NOT NULL,
2788@@ -1904,11 +3535,19 @@
2789 CONSTRAINT valid_link CHECK ((((productseries IS NULL) <> (distroseries IS NULL)) AND ((distroseries IS NULL) = (sourcepackagename IS NULL))))
2790 );
2791
2792+CREATE SEQUENCE potemplate_id_seq
2793+ INCREMENT BY 1
2794+ NO MAXVALUE
2795+ NO MINVALUE
2796+ CACHE 1;
2797+
2798+ALTER SEQUENCE potemplate_id_seq OWNED BY potemplate.id;
2799+
2800 CREATE TABLE potmsgset (
2801 id integer NOT NULL,
2802 msgid_singular integer NOT NULL,
2803- sequence integer NOT NULL,
2804- potemplate integer NOT NULL,
2805+ sequence integer,
2806+ potemplate integer,
2807 commenttext text,
2808 filereferences text,
2809 sourcecomment text,
2810@@ -1917,96 +3556,54 @@
2811 msgid_plural integer
2812 );
2813
2814+CREATE TABLE translationtemplateitem (
2815+ id integer NOT NULL,
2816+ potemplate integer NOT NULL,
2817+ sequence integer NOT NULL,
2818+ potmsgset integer NOT NULL,
2819+ CONSTRAINT translationtemplateitem_sequence_check CHECK ((sequence >= 0))
2820+);
2821+
2822+CREATE VIEW potexport AS
2823+ SELECT COALESCE((potmsgset.id)::text, 'X'::text) AS id, potemplate.productseries, potemplate.sourcepackagename, potemplate.distroseries, potemplate.id AS potemplate, potemplate.header AS template_header, potemplate.languagepack, translationtemplateitem.sequence, potmsgset.id AS potmsgset, potmsgset.commenttext AS comment, potmsgset.sourcecomment AS source_comment, potmsgset.filereferences AS file_references, potmsgset.flagscomment AS flags_comment, potmsgset.context, msgid_singular.msgid AS msgid_singular, msgid_plural.msgid AS msgid_plural FROM ((((potmsgset JOIN translationtemplateitem ON ((translationtemplateitem.potmsgset = potmsgset.id))) JOIN potemplate ON ((potemplate.id = translationtemplateitem.potemplate))) LEFT JOIN pomsgid msgid_singular ON ((potmsgset.msgid_singular = msgid_singular.id))) LEFT JOIN pomsgid msgid_plural ON ((potmsgset.msgid_plural = msgid_plural.id)));
2824+
2825+CREATE SEQUENCE potmsgset_id_seq
2826+ INCREMENT BY 1
2827+ NO MAXVALUE
2828+ NO MINVALUE
2829+ CACHE 1;
2830+
2831+ALTER SEQUENCE potmsgset_id_seq OWNED BY potmsgset.id;
2832+
2833 CREATE TABLE potranslation (
2834 id integer NOT NULL,
2835 translation text NOT NULL
2836 );
2837
2838-CREATE TABLE translationmessage (
2839- id integer NOT NULL,
2840- pofile integer NOT NULL,
2841- potmsgset integer NOT NULL,
2842- date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2843- submitter integer NOT NULL,
2844- date_reviewed timestamp without time zone,
2845- reviewer integer,
2846- msgstr0 integer,
2847- msgstr1 integer,
2848- msgstr2 integer,
2849- msgstr3 integer,
2850- comment text,
2851- origin integer NOT NULL,
2852- validation_status integer DEFAULT 0 NOT NULL,
2853- is_current boolean DEFAULT false NOT NULL,
2854- is_fuzzy boolean DEFAULT false NOT NULL,
2855- is_imported boolean DEFAULT false NOT NULL,
2856- was_obsolete_in_last_import boolean DEFAULT false NOT NULL,
2857- was_fuzzy_in_last_import boolean DEFAULT false NOT NULL,
2858- msgstr4 integer,
2859- msgstr5 integer,
2860- potemplate integer,
2861- language integer,
2862- variant text,
2863- CONSTRAINT translationmessage__reviewer__date_reviewed__valid CHECK (((reviewer IS NULL) = (date_reviewed IS NULL)))
2864-);
2865-
2866-CREATE VIEW poexport AS
2867- SELECT ((COALESCE((potmsgset.id)::text, 'X'::text) || '.'::text) || COALESCE((translationmessage.id)::text, 'X'::text)) AS id, potemplate.productseries, potemplate.sourcepackagename, potemplate.distroseries, potemplate.id AS potemplate, potemplate.header AS template_header, potemplate.languagepack, pofile.id AS pofile, pofile.language, pofile.variant, pofile.topcomment AS translation_file_comment, pofile.header AS translation_header, pofile.fuzzyheader AS is_translation_header_fuzzy, potmsgset.sequence, potmsgset.id AS potmsgset, translationmessage.comment, potmsgset.sourcecomment AS source_comment, potmsgset.filereferences AS file_references, potmsgset.flagscomment AS flags_comment, potmsgset.context, msgid_singular.msgid AS msgid_singular, msgid_plural.msgid AS msgid_plural, translationmessage.is_current, translationmessage.is_imported, potranslation0.translation AS translation0, potranslation1.translation AS translation1, potranslation2.translation AS translation2, potranslation3.translation AS translation3, potranslation4.translation AS translation4, potranslation5.translation AS translation5 FROM (((((((((((potmsgset JOIN potemplate ON ((potemplate.id = potmsgset.potemplate))) JOIN pofile ON ((potemplate.id = pofile.potemplate))) LEFT JOIN translationmessage ON ((((potmsgset.id = translationmessage.potmsgset) AND (translationmessage.pofile = pofile.id)) AND (translationmessage.is_current IS TRUE)))) LEFT JOIN pomsgid msgid_singular ON ((msgid_singular.id = potmsgset.msgid_singular))) LEFT JOIN pomsgid msgid_plural ON ((msgid_plural.id = potmsgset.msgid_plural))) LEFT JOIN potranslation potranslation0 ON ((potranslation0.id = translationmessage.msgstr0))) LEFT JOIN potranslation potranslation1 ON ((potranslation1.id = translationmessage.msgstr1))) LEFT JOIN potranslation potranslation2 ON ((potranslation2.id = translationmessage.msgstr2))) LEFT JOIN potranslation potranslation3 ON ((potranslation3.id = translationmessage.msgstr3))) LEFT JOIN potranslation potranslation4 ON ((potranslation4.id = translationmessage.msgstr4))) LEFT JOIN potranslation potranslation5 ON ((potranslation5.id = translationmessage.msgstr5)));
2868-
2869-CREATE TABLE poexportrequest (
2870- id integer NOT NULL,
2871- person integer NOT NULL,
2872- potemplate integer NOT NULL,
2873- pofile integer,
2874- format integer NOT NULL,
2875- date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2876-);
2877-
2878-CREATE TABLE pofiletranslator (
2879- id integer NOT NULL,
2880- person integer NOT NULL,
2881- pofile integer NOT NULL,
2882- latest_message integer NOT NULL,
2883- date_last_touched timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2884-);
2885-
2886-CREATE TABLE poll (
2887- id integer NOT NULL,
2888- team integer NOT NULL,
2889- name text NOT NULL,
2890- title text NOT NULL,
2891- dateopens timestamp without time zone NOT NULL,
2892- datecloses timestamp without time zone NOT NULL,
2893- proposition text NOT NULL,
2894- type integer NOT NULL,
2895- allowspoilt boolean DEFAULT false NOT NULL,
2896- secrecy integer NOT NULL,
2897- date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
2898- CONSTRAINT is_team CHECK (is_team(team)),
2899- CONSTRAINT sane_dates CHECK ((dateopens < datecloses))
2900-);
2901-
2902-CREATE TABLE polloption (
2903- id integer NOT NULL,
2904- poll integer NOT NULL,
2905- name text NOT NULL,
2906- title text NOT NULL,
2907- active boolean DEFAULT true NOT NULL,
2908- date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2909-);
2910-
2911-CREATE TABLE posubscription (
2912- id integer NOT NULL,
2913- person integer NOT NULL,
2914- potemplate integer NOT NULL,
2915- language integer,
2916- notificationinterval interval,
2917- lastnotified timestamp without time zone,
2918- date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2919-);
2920-
2921-CREATE VIEW potexport AS
2922- SELECT COALESCE((potmsgset.id)::text, 'X'::text) AS id, potemplate.productseries, potemplate.sourcepackagename, potemplate.distroseries, potemplate.id AS potemplate, potemplate.header AS template_header, potemplate.languagepack, potmsgset.sequence, potmsgset.id AS potmsgset, potmsgset.commenttext AS comment, potmsgset.sourcecomment AS source_comment, potmsgset.filereferences AS file_references, potmsgset.flagscomment AS flags_comment, potmsgset.context, msgid_singular.msgid AS msgid_singular, msgid_plural.msgid AS msgid_plural FROM (((potmsgset JOIN potemplate ON ((potemplate.id = potmsgset.potemplate))) LEFT JOIN pomsgid msgid_singular ON ((potmsgset.msgid_singular = msgid_singular.id))) LEFT JOIN pomsgid msgid_plural ON ((potmsgset.msgid_plural = msgid_plural.id)));
2923+CREATE SEQUENCE potranslation_id_seq
2924+ INCREMENT BY 1
2925+ NO MAXVALUE
2926+ NO MINVALUE
2927+ CACHE 1;
2928+
2929+ALTER SEQUENCE potranslation_id_seq OWNED BY potranslation.id;
2930+
2931+CREATE TABLE previewdiff (
2932+ id integer NOT NULL,
2933+ source_revision_id text NOT NULL,
2934+ target_revision_id text NOT NULL,
2935+ dependent_revision_id text,
2936+ diff integer NOT NULL,
2937+ conflicts text
2938+);
2939+
2940+CREATE SEQUENCE previewdiff_id_seq
2941+ INCREMENT BY 1
2942+ NO MAXVALUE
2943+ NO MINVALUE
2944+ CACHE 1;
2945+
2946+ALTER SEQUENCE previewdiff_id_seq OWNED BY previewdiff.id;
2947
2948 CREATE TABLE processor (
2949 id integer NOT NULL,
2950@@ -2016,6 +3613,14 @@
2951 description text NOT NULL
2952 );
2953
2954+CREATE SEQUENCE processor_id_seq
2955+ INCREMENT BY 1
2956+ NO MAXVALUE
2957+ NO MINVALUE
2958+ CACHE 1;
2959+
2960+ALTER SEQUENCE processor_id_seq OWNED BY processor.id;
2961+
2962 CREATE TABLE processorfamily (
2963 id integer NOT NULL,
2964 name text NOT NULL,
2965@@ -2023,6 +3628,22 @@
2966 description text NOT NULL
2967 );
2968
2969+CREATE SEQUENCE processorfamily_id_seq
2970+ INCREMENT BY 1
2971+ NO MAXVALUE
2972+ NO MINVALUE
2973+ CACHE 1;
2974+
2975+ALTER SEQUENCE processorfamily_id_seq OWNED BY processorfamily.id;
2976+
2977+CREATE SEQUENCE product_id_seq
2978+ INCREMENT BY 1
2979+ NO MAXVALUE
2980+ NO MINVALUE
2981+ CACHE 1;
2982+
2983+ALTER SEQUENCE product_id_seq OWNED BY product.id;
2984+
2985 CREATE TABLE productbounty (
2986 id integer NOT NULL,
2987 bounty integer NOT NULL,
2988@@ -2030,6 +3651,14 @@
2989 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
2990 );
2991
2992+CREATE SEQUENCE productbounty_id_seq
2993+ INCREMENT BY 1
2994+ NO MAXVALUE
2995+ NO MINVALUE
2996+ CACHE 1;
2997+
2998+ALTER SEQUENCE productbounty_id_seq OWNED BY productbounty.id;
2999+
3000 CREATE TABLE productcvsmodule (
3001 id integer NOT NULL,
3002 product integer NOT NULL,
3003@@ -2039,26 +3668,46 @@
3004 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3005 );
3006
3007+CREATE SEQUENCE productcvsmodule_id_seq
3008+ INCREMENT BY 1
3009+ NO MAXVALUE
3010+ NO MINVALUE
3011+ CACHE 1;
3012+
3013+ALTER SEQUENCE productcvsmodule_id_seq OWNED BY productcvsmodule.id;
3014+
3015 CREATE TABLE productlicense (
3016 id integer NOT NULL,
3017 product integer NOT NULL,
3018 license integer NOT NULL
3019 );
3020
3021+CREATE SEQUENCE productlicense_id_seq
3022+ INCREMENT BY 1
3023+ NO MAXVALUE
3024+ NO MINVALUE
3025+ CACHE 1;
3026+
3027+ALTER SEQUENCE productlicense_id_seq OWNED BY productlicense.id;
3028+
3029 CREATE TABLE productrelease (
3030 id integer NOT NULL,
3031 datereleased timestamp without time zone NOT NULL,
3032- version text NOT NULL,
3033- codename text,
3034- description text,
3035+ release_notes text,
3036 changelog text,
3037 owner integer NOT NULL,
3038- summary text,
3039- productseries integer NOT NULL,
3040 datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
3041- CONSTRAINT valid_version CHECK (sane_version(version))
3042+ milestone integer NOT NULL
3043 );
3044
3045+CREATE SEQUENCE productrelease_id_seq
3046+ INCREMENT BY 1
3047+ NO MAXVALUE
3048+ NO MINVALUE
3049+ CACHE 1;
3050+
3051+ALTER SEQUENCE productrelease_id_seq OWNED BY productrelease.id;
3052+
3053 CREATE TABLE productreleasefile (
3054 productrelease integer NOT NULL,
3055 libraryfile integer NOT NULL,
3056@@ -2071,12 +3720,19 @@
3057 signature integer
3058 );
3059
3060+CREATE SEQUENCE productreleasefile_id_seq
3061+ INCREMENT BY 1
3062+ NO MAXVALUE
3063+ NO MINVALUE
3064+ CACHE 1;
3065+
3066+ALTER SEQUENCE productreleasefile_id_seq OWNED BY productreleasefile.id;
3067+
3068 CREATE TABLE productseries (
3069 id integer NOT NULL,
3070 product integer NOT NULL,
3071 name text NOT NULL,
3072 summary text NOT NULL,
3073- import_branch integer,
3074 importstatus integer,
3075 datelastsynced timestamp without time zone,
3076 syncinterval interval,
3077@@ -2096,9 +3752,11 @@
3078 datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
3079 driver integer,
3080 owner integer NOT NULL,
3081- user_branch integer,
3082 date_published_sync timestamp without time zone,
3083 status integer DEFAULT 2 NOT NULL,
3084+ translations_autoimport_mode integer DEFAULT 1 NOT NULL,
3085+ branch integer,
3086+ translations_branch integer,
3087 CONSTRAINT complete_cvs CHECK ((((cvsroot IS NULL) = (cvsmodule IS NULL)) AND ((cvsroot IS NULL) = (cvsbranch IS NULL)))),
3088 CONSTRAINT no_empty_strings CHECK (((((cvsroot <> ''::text) AND (cvsmodule <> ''::text)) AND (cvsbranch <> ''::text)) AND (svnrepository <> ''::text))),
3089 CONSTRAINT valid_importseries CHECK (((importstatus IS NULL) OR (rcstype IS NOT NULL))),
3090@@ -2106,12 +3764,28 @@
3091 CONSTRAINT valid_releasefileglob CHECK (valid_absolute_url(releasefileglob))
3092 );
3093
3094+CREATE SEQUENCE productseries_id_seq
3095+ INCREMENT BY 1
3096+ NO MAXVALUE
3097+ NO MINVALUE
3098+ CACHE 1;
3099+
3100+ALTER SEQUENCE productseries_id_seq OWNED BY productseries.id;
3101+
3102 CREATE TABLE productseriescodeimport (
3103 id integer NOT NULL,
3104 productseries integer NOT NULL,
3105 codeimport integer NOT NULL
3106 );
3107
3108+CREATE SEQUENCE productseriescodeimport_id_seq
3109+ INCREMENT BY 1
3110+ NO MAXVALUE
3111+ NO MINVALUE
3112+ CACHE 1;
3113+
3114+ALTER SEQUENCE productseriescodeimport_id_seq OWNED BY productseriescodeimport.id;
3115+
3116 CREATE TABLE productsvnmodule (
3117 id integer NOT NULL,
3118 product integer NOT NULL,
3119@@ -2120,6 +3794,14 @@
3120 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3121 );
3122
3123+CREATE SEQUENCE productsvnmodule_id_seq
3124+ INCREMENT BY 1
3125+ NO MAXVALUE
3126+ NO MINVALUE
3127+ CACHE 1;
3128+
3129+ALTER SEQUENCE productsvnmodule_id_seq OWNED BY productsvnmodule.id;
3130+
3131 CREATE TABLE project (
3132 id integer NOT NULL,
3133 owner integer NOT NULL,
3134@@ -2151,6 +3833,14 @@
3135 CONSTRAINT valid_name CHECK (valid_name(name))
3136 );
3137
3138+CREATE SEQUENCE project_id_seq
3139+ INCREMENT BY 1
3140+ NO MAXVALUE
3141+ NO MINVALUE
3142+ CACHE 1;
3143+
3144+ALTER SEQUENCE project_id_seq OWNED BY project.id;
3145+
3146 CREATE TABLE projectbounty (
3147 id integer NOT NULL,
3148 bounty integer NOT NULL,
3149@@ -2158,6 +3848,14 @@
3150 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3151 );
3152
3153+CREATE SEQUENCE projectbounty_id_seq
3154+ INCREMENT BY 1
3155+ NO MAXVALUE
3156+ NO MINVALUE
3157+ CACHE 1;
3158+
3159+ALTER SEQUENCE projectbounty_id_seq OWNED BY projectbounty.id;
3160+
3161 CREATE TABLE projectrelationship (
3162 id integer NOT NULL,
3163 subject integer NOT NULL,
3164@@ -2165,6 +3863,14 @@
3165 object integer NOT NULL
3166 );
3167
3168+CREATE SEQUENCE projectrelationship_id_seq
3169+ INCREMENT BY 1
3170+ NO MAXVALUE
3171+ NO MINVALUE
3172+ CACHE 1;
3173+
3174+ALTER SEQUENCE projectrelationship_id_seq OWNED BY projectrelationship.id;
3175+
3176 CREATE TABLE section (
3177 id integer NOT NULL,
3178 name text NOT NULL
3179@@ -2180,6 +3886,14 @@
3180 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3181 );
3182
3183+CREATE SEQUENCE pushmirroraccess_id_seq
3184+ INCREMENT BY 1
3185+ NO MAXVALUE
3186+ NO MINVALUE
3187+ CACHE 1;
3188+
3189+ALTER SEQUENCE pushmirroraccess_id_seq OWNED BY pushmirroraccess.id;
3190+
3191 CREATE TABLE question (
3192 id integer NOT NULL,
3193 owner integer NOT NULL,
3194@@ -2208,6 +3922,14 @@
3195 CONSTRAINT sourcepackagename_needs_distro CHECK (((sourcepackagename IS NULL) OR (distribution IS NOT NULL)))
3196 );
3197
3198+CREATE SEQUENCE question_id_seq
3199+ INCREMENT BY 1
3200+ NO MAXVALUE
3201+ NO MINVALUE
3202+ CACHE 1;
3203+
3204+ALTER SEQUENCE question_id_seq OWNED BY question.id;
3205+
3206 CREATE TABLE questionbug (
3207 id integer NOT NULL,
3208 question integer NOT NULL,
3209@@ -2215,6 +3937,14 @@
3210 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3211 );
3212
3213+CREATE SEQUENCE questionbug_id_seq
3214+ INCREMENT BY 1
3215+ NO MAXVALUE
3216+ NO MINVALUE
3217+ CACHE 1;
3218+
3219+ALTER SEQUENCE questionbug_id_seq OWNED BY questionbug.id;
3220+
3221 CREATE TABLE questionmessage (
3222 id integer NOT NULL,
3223 question integer NOT NULL,
3224@@ -2223,6 +3953,14 @@
3225 new_status integer NOT NULL
3226 );
3227
3228+CREATE SEQUENCE questionmessage_id_seq
3229+ INCREMENT BY 1
3230+ NO MAXVALUE
3231+ NO MINVALUE
3232+ CACHE 1;
3233+
3234+ALTER SEQUENCE questionmessage_id_seq OWNED BY questionmessage.id;
3235+
3236 CREATE TABLE questionreopening (
3237 id integer NOT NULL,
3238 question integer NOT NULL,
3239@@ -2233,6 +3971,14 @@
3240 priorstate integer NOT NULL
3241 );
3242
3243+CREATE SEQUENCE questionreopening_id_seq
3244+ INCREMENT BY 1
3245+ NO MAXVALUE
3246+ NO MINVALUE
3247+ CACHE 1;
3248+
3249+ALTER SEQUENCE questionreopening_id_seq OWNED BY questionreopening.id;
3250+
3251 CREATE TABLE questionsubscription (
3252 id integer NOT NULL,
3253 question integer NOT NULL,
3254@@ -2240,6 +3986,14 @@
3255 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3256 );
3257
3258+CREATE SEQUENCE questionsubscription_id_seq
3259+ INCREMENT BY 1
3260+ NO MAXVALUE
3261+ NO MINVALUE
3262+ CACHE 1;
3263+
3264+ALTER SEQUENCE questionsubscription_id_seq OWNED BY questionsubscription.id;
3265+
3266 CREATE TABLE requestedcds (
3267 id integer NOT NULL,
3268 request integer NOT NULL,
3269@@ -2252,16 +4006,21 @@
3270 CONSTRAINT quantityapproved_is_positive CHECK ((quantityapproved >= 0))
3271 );
3272
3273-CREATE TABLE revision (
3274- id integer NOT NULL,
3275- date_created timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
3276- log_body text NOT NULL,
3277- revision_author integer NOT NULL,
3278- gpgkey integer,
3279- revision_id text NOT NULL,
3280- revision_date timestamp without time zone,
3281- karma_allocated boolean DEFAULT false
3282-);
3283+CREATE SEQUENCE requestedcds_id_seq
3284+ INCREMENT BY 1
3285+ NO MAXVALUE
3286+ NO MINVALUE
3287+ CACHE 1;
3288+
3289+ALTER SEQUENCE requestedcds_id_seq OWNED BY requestedcds.id;
3290+
3291+CREATE SEQUENCE revision_id_seq
3292+ INCREMENT BY 1
3293+ NO MAXVALUE
3294+ NO MINVALUE
3295+ CACHE 1;
3296+
3297+ALTER SEQUENCE revision_id_seq OWNED BY revision.id;
3298
3299 CREATE TABLE revisionauthor (
3300 id integer NOT NULL,
3301@@ -2270,6 +4029,34 @@
3302 person integer
3303 );
3304
3305+CREATE SEQUENCE revisionauthor_id_seq
3306+ INCREMENT BY 1
3307+ NO MAXVALUE
3308+ NO MINVALUE
3309+ CACHE 1;
3310+
3311+ALTER SEQUENCE revisionauthor_id_seq OWNED BY revisionauthor.id;
3312+
3313+CREATE TABLE revisioncache (
3314+ id integer NOT NULL,
3315+ revision integer NOT NULL,
3316+ revision_author integer NOT NULL,
3317+ revision_date timestamp without time zone NOT NULL,
3318+ product integer,
3319+ distroseries integer,
3320+ sourcepackagename integer,
3321+ private boolean NOT NULL,
3322+ CONSTRAINT valid_target CHECK ((((distroseries IS NULL) = (sourcepackagename IS NULL)) AND (((distroseries IS NULL) AND (product IS NULL)) OR ((distroseries IS NULL) <> (product IS NULL)))))
3323+);
3324+
3325+CREATE SEQUENCE revisioncache_id_seq
3326+ INCREMENT BY 1
3327+ NO MAXVALUE
3328+ NO MINVALUE
3329+ CACHE 1;
3330+
3331+ALTER SEQUENCE revisioncache_id_seq OWNED BY revisioncache.id;
3332+
3333 CREATE VIEW revisionnumber AS
3334 SELECT branchrevision.id, branchrevision.sequence, branchrevision.branch, branchrevision.revision FROM branchrevision;
3335
3336@@ -2280,6 +4067,14 @@
3337 parent_id text NOT NULL
3338 );
3339
3340+CREATE SEQUENCE revisionparent_id_seq
3341+ INCREMENT BY 1
3342+ NO MAXVALUE
3343+ NO MINVALUE
3344+ CACHE 1;
3345+
3346+ALTER SEQUENCE revisionparent_id_seq OWNED BY revisionparent.id;
3347+
3348 CREATE TABLE revisionproperty (
3349 id integer NOT NULL,
3350 revision integer NOT NULL,
3351@@ -2287,6 +4082,14 @@
3352 value text NOT NULL
3353 );
3354
3355+CREATE SEQUENCE revisionproperty_id_seq
3356+ INCREMENT BY 1
3357+ NO MAXVALUE
3358+ NO MINVALUE
3359+ CACHE 1;
3360+
3361+ALTER SEQUENCE revisionproperty_id_seq OWNED BY revisionproperty.id;
3362+
3363 CREATE TABLE scriptactivity (
3364 id integer NOT NULL,
3365 name text NOT NULL,
3366@@ -2295,6 +4098,22 @@
3367 date_completed timestamp without time zone NOT NULL
3368 );
3369
3370+CREATE SEQUENCE scriptactivity_id_seq
3371+ INCREMENT BY 1
3372+ NO MAXVALUE
3373+ NO MINVALUE
3374+ CACHE 1;
3375+
3376+ALTER SEQUENCE scriptactivity_id_seq OWNED BY scriptactivity.id;
3377+
3378+CREATE SEQUENCE section_id_seq
3379+ INCREMENT BY 1
3380+ NO MAXVALUE
3381+ NO MINVALUE
3382+ CACHE 1;
3383+
3384+ALTER SEQUENCE section_id_seq OWNED BY section.id;
3385+
3386 CREATE TABLE sectionselection (
3387 id integer NOT NULL,
3388 distroseries integer NOT NULL,
3389@@ -2302,6 +4121,22 @@
3390 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3391 );
3392
3393+CREATE SEQUENCE sectionselection_id_seq
3394+ INCREMENT BY 1
3395+ NO MAXVALUE
3396+ NO MINVALUE
3397+ CACHE 1;
3398+
3399+ALTER SEQUENCE sectionselection_id_seq OWNED BY sectionselection.id;
3400+
3401+CREATE SEQUENCE securebinarypackagepublishinghistory_id_seq
3402+ INCREMENT BY 1
3403+ NO MAXVALUE
3404+ NO MINVALUE
3405+ CACHE 1;
3406+
3407+ALTER SEQUENCE securebinarypackagepublishinghistory_id_seq OWNED BY securebinarypackagepublishinghistory.id;
3408+
3409 CREATE TABLE securesourcepackagepublishinghistory (
3410 id integer NOT NULL,
3411 sourcepackagerelease integer NOT NULL,
3412@@ -2324,29 +4159,87 @@
3413 removal_comment text
3414 );
3415
3416+CREATE SEQUENCE securesourcepackagepublishinghistory_id_seq
3417+ INCREMENT BY 1
3418+ NO MAXVALUE
3419+ NO MINVALUE
3420+ CACHE 1;
3421+
3422+ALTER SEQUENCE securesourcepackagepublishinghistory_id_seq OWNED BY securesourcepackagepublishinghistory.id;
3423+
3424+CREATE TABLE seriessourcepackagebranch (
3425+ id integer NOT NULL,
3426+ distroseries integer NOT NULL,
3427+ pocket integer NOT NULL,
3428+ sourcepackagename integer NOT NULL,
3429+ branch integer NOT NULL,
3430+ registrant integer NOT NULL,
3431+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3432+);
3433+
3434+CREATE SEQUENCE seriessourcepackagebranch_id_seq
3435+ INCREMENT BY 1
3436+ NO MAXVALUE
3437+ NO MINVALUE
3438+ CACHE 1;
3439+
3440+ALTER SEQUENCE seriessourcepackagebranch_id_seq OWNED BY seriessourcepackagebranch.id;
3441+
3442 CREATE TABLE shipitreport (
3443 id integer NOT NULL,
3444 datecreated timestamp without time zone NOT NULL,
3445 csvfile integer NOT NULL
3446 );
3447
3448+CREATE SEQUENCE shipitreport_id_seq
3449+ INCREMENT BY 1
3450+ NO MAXVALUE
3451+ NO MINVALUE
3452+ CACHE 1;
3453+
3454+ALTER SEQUENCE shipitreport_id_seq OWNED BY shipitreport.id;
3455+
3456 CREATE TABLE shipitsurvey (
3457 id integer NOT NULL,
3458- person integer NOT NULL,
3459+ account integer NOT NULL,
3460 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
3461 exported boolean DEFAULT false NOT NULL
3462 );
3463
3464+CREATE SEQUENCE shipitsurvey_id_seq
3465+ INCREMENT BY 1
3466+ NO MAXVALUE
3467+ NO MINVALUE
3468+ CACHE 1;
3469+
3470+ALTER SEQUENCE shipitsurvey_id_seq OWNED BY shipitsurvey.id;
3471+
3472 CREATE TABLE shipitsurveyanswer (
3473 id integer NOT NULL,
3474 answer text NOT NULL
3475 );
3476
3477+CREATE SEQUENCE shipitsurveyanswer_id_seq
3478+ INCREMENT BY 1
3479+ NO MAXVALUE
3480+ NO MINVALUE
3481+ CACHE 1;
3482+
3483+ALTER SEQUENCE shipitsurveyanswer_id_seq OWNED BY shipitsurveyanswer.id;
3484+
3485 CREATE TABLE shipitsurveyquestion (
3486 id integer NOT NULL,
3487 question text NOT NULL
3488 );
3489
3490+CREATE SEQUENCE shipitsurveyquestion_id_seq
3491+ INCREMENT BY 1
3492+ NO MAXVALUE
3493+ NO MINVALUE
3494+ CACHE 1;
3495+
3496+ALTER SEQUENCE shipitsurveyquestion_id_seq OWNED BY shipitsurveyquestion.id;
3497+
3498 CREATE TABLE shipitsurveyresult (
3499 id integer NOT NULL,
3500 survey integer NOT NULL,
3501@@ -2354,6 +4247,14 @@
3502 answer integer
3503 );
3504
3505+CREATE SEQUENCE shipitsurveyresult_id_seq
3506+ INCREMENT BY 1
3507+ NO MAXVALUE
3508+ NO MINVALUE
3509+ CACHE 1;
3510+
3511+ALTER SEQUENCE shipitsurveyresult_id_seq OWNED BY shipitsurveyresult.id;
3512+
3513 CREATE TABLE shipment (
3514 id integer NOT NULL,
3515 logintoken text NOT NULL,
3516@@ -2363,6 +4264,14 @@
3517 trackingcode text
3518 );
3519
3520+CREATE SEQUENCE shipment_id_seq
3521+ INCREMENT BY 1
3522+ NO MAXVALUE
3523+ NO MINVALUE
3524+ CACHE 1;
3525+
3526+ALTER SEQUENCE shipment_id_seq OWNED BY shipment.id;
3527+
3528 CREATE TABLE shippingrequest (
3529 id integer NOT NULL,
3530 recipient integer NOT NULL,
3531@@ -2385,10 +4294,19 @@
3532 status integer NOT NULL,
3533 normalized_address text NOT NULL,
3534 type integer,
3535+ is_admin_request boolean DEFAULT false NOT NULL,
3536 CONSTRAINT enforce_shipped_status CHECK (((status <> 4) OR (shipment IS NOT NULL))),
3537 CONSTRAINT printable_addresses CHECK (is_printable_ascii((((((((COALESCE(recipientdisplayname, ''::text) || COALESCE(addressline1, ''::text)) || COALESCE(addressline2, ''::text)) || COALESCE(organization, ''::text)) || COALESCE(city, ''::text)) || COALESCE(province, ''::text)) || COALESCE(postcode, ''::text)) || COALESCE(phone, ''::text))))
3538 );
3539
3540+CREATE SEQUENCE shippingrequest_id_seq
3541+ INCREMENT BY 1
3542+ NO MAXVALUE
3543+ NO MINVALUE
3544+ CACHE 1;
3545+
3546+ALTER SEQUENCE shippingrequest_id_seq OWNED BY shippingrequest.id;
3547+
3548 CREATE TABLE shippingrun (
3549 id integer NOT NULL,
3550 datecreated timestamp without time zone NOT NULL,
3551@@ -2397,6 +4315,14 @@
3552 requests_count integer NOT NULL
3553 );
3554
3555+CREATE SEQUENCE shippingrun_id_seq
3556+ INCREMENT BY 1
3557+ NO MAXVALUE
3558+ NO MINVALUE
3559+ CACHE 1;
3560+
3561+ALTER SEQUENCE shippingrun_id_seq OWNED BY shippingrun.id;
3562+
3563 CREATE TABLE signedcodeofconduct (
3564 id integer NOT NULL,
3565 owner integer NOT NULL,
3566@@ -2408,6 +4334,14 @@
3567 admincomment text
3568 );
3569
3570+CREATE SEQUENCE signedcodeofconduct_id_seq
3571+ INCREMENT BY 1
3572+ NO MAXVALUE
3573+ NO MINVALUE
3574+ CACHE 1;
3575+
3576+ALTER SEQUENCE signedcodeofconduct_id_seq OWNED BY signedcodeofconduct.id;
3577+
3578 CREATE TABLE sourcepackagereleasefile (
3579 sourcepackagerelease integer NOT NULL,
3580 libraryfile integer NOT NULL,
3581@@ -2418,9 +4352,33 @@
3582 CREATE VIEW sourcepackagefilepublishing AS
3583 SELECT (((libraryfilealias.id)::text || '.'::text) || (securesourcepackagepublishinghistory.id)::text) AS id, distroseries.distribution, securesourcepackagepublishinghistory.id AS sourcepackagepublishing, sourcepackagereleasefile.libraryfile AS libraryfilealias, libraryfilealias.filename AS libraryfilealiasfilename, sourcepackagename.name AS sourcepackagename, component.name AS componentname, distroseries.name AS distroseriesname, securesourcepackagepublishinghistory.status AS publishingstatus, securesourcepackagepublishinghistory.pocket, securesourcepackagepublishinghistory.archive FROM ((((((securesourcepackagepublishinghistory JOIN sourcepackagerelease ON ((securesourcepackagepublishinghistory.sourcepackagerelease = sourcepackagerelease.id))) JOIN sourcepackagename ON ((sourcepackagerelease.sourcepackagename = sourcepackagename.id))) JOIN sourcepackagereleasefile ON ((sourcepackagereleasefile.sourcepackagerelease = sourcepackagerelease.id))) JOIN libraryfilealias ON ((libraryfilealias.id = sourcepackagereleasefile.libraryfile))) JOIN distroseries ON ((securesourcepackagepublishinghistory.distroseries = distroseries.id))) JOIN component ON ((securesourcepackagepublishinghistory.component = component.id))) WHERE (securesourcepackagepublishinghistory.dateremoved IS NULL);
3584
3585+CREATE SEQUENCE sourcepackagename_id_seq
3586+ INCREMENT BY 1
3587+ NO MAXVALUE
3588+ NO MINVALUE
3589+ CACHE 1;
3590+
3591+ALTER SEQUENCE sourcepackagename_id_seq OWNED BY sourcepackagename.id;
3592+
3593 CREATE VIEW sourcepackagepublishinghistory AS
3594 SELECT securesourcepackagepublishinghistory.id, securesourcepackagepublishinghistory.sourcepackagerelease, securesourcepackagepublishinghistory.status, securesourcepackagepublishinghistory.component, securesourcepackagepublishinghistory.section, securesourcepackagepublishinghistory.distroseries, securesourcepackagepublishinghistory.pocket, securesourcepackagepublishinghistory.archive, securesourcepackagepublishinghistory.datecreated, securesourcepackagepublishinghistory.datepublished, securesourcepackagepublishinghistory.datesuperseded, securesourcepackagepublishinghistory.supersededby, securesourcepackagepublishinghistory.datemadepending, securesourcepackagepublishinghistory.scheduleddeletiondate, securesourcepackagepublishinghistory.dateremoved, securesourcepackagepublishinghistory.removed_by, securesourcepackagepublishinghistory.removal_comment, securesourcepackagepublishinghistory.embargo, securesourcepackagepublishinghistory.embargolifted FROM securesourcepackagepublishinghistory WHERE (securesourcepackagepublishinghistory.embargo = false);
3595
3596+CREATE SEQUENCE sourcepackagerelease_id_seq
3597+ INCREMENT BY 1
3598+ NO MAXVALUE
3599+ NO MINVALUE
3600+ CACHE 1;
3601+
3602+ALTER SEQUENCE sourcepackagerelease_id_seq OWNED BY sourcepackagerelease.id;
3603+
3604+CREATE SEQUENCE sourcepackagereleasefile_id_seq
3605+ INCREMENT BY 1
3606+ NO MAXVALUE
3607+ NO MINVALUE
3608+ CACHE 1;
3609+
3610+ALTER SEQUENCE sourcepackagereleasefile_id_seq OWNED BY sourcepackagereleasefile.id;
3611+
3612 CREATE TABLE specification (
3613 id integer NOT NULL,
3614 name text NOT NULL,
3615@@ -2469,6 +4427,14 @@
3616 CONSTRAINT valid_url CHECK (valid_absolute_url(specurl))
3617 );
3618
3619+CREATE SEQUENCE specification_id_seq
3620+ INCREMENT BY 1
3621+ NO MAXVALUE
3622+ NO MINVALUE
3623+ CACHE 1;
3624+
3625+ALTER SEQUENCE specification_id_seq OWNED BY specification.id;
3626+
3627 CREATE TABLE specificationbranch (
3628 id integer NOT NULL,
3629 datecreated timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
3630@@ -2478,12 +4444,28 @@
3631 registrant integer NOT NULL
3632 );
3633
3634+CREATE SEQUENCE specificationbranch_id_seq
3635+ INCREMENT BY 1
3636+ NO MAXVALUE
3637+ NO MINVALUE
3638+ CACHE 1;
3639+
3640+ALTER SEQUENCE specificationbranch_id_seq OWNED BY specificationbranch.id;
3641+
3642 CREATE TABLE specificationbug (
3643 id integer NOT NULL,
3644 specification integer NOT NULL,
3645 bug integer NOT NULL
3646 );
3647
3648+CREATE SEQUENCE specificationbug_id_seq
3649+ INCREMENT BY 1
3650+ NO MAXVALUE
3651+ NO MINVALUE
3652+ CACHE 1;
3653+
3654+ALTER SEQUENCE specificationbug_id_seq OWNED BY specificationbug.id;
3655+
3656 CREATE TABLE specificationdependency (
3657 id integer NOT NULL,
3658 specification integer NOT NULL,
3659@@ -2492,6 +4474,14 @@
3660 CONSTRAINT specificationdependency_not_self CHECK ((specification <> dependency))
3661 );
3662
3663+CREATE SEQUENCE specificationdependency_id_seq
3664+ INCREMENT BY 1
3665+ NO MAXVALUE
3666+ NO MINVALUE
3667+ CACHE 1;
3668+
3669+ALTER SEQUENCE specificationdependency_id_seq OWNED BY specificationdependency.id;
3670+
3671 CREATE TABLE specificationfeedback (
3672 id integer NOT NULL,
3673 specification integer NOT NULL,
3674@@ -2501,12 +4491,28 @@
3675 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3676 );
3677
3678+CREATE SEQUENCE specificationfeedback_id_seq
3679+ INCREMENT BY 1
3680+ NO MAXVALUE
3681+ NO MINVALUE
3682+ CACHE 1;
3683+
3684+ALTER SEQUENCE specificationfeedback_id_seq OWNED BY specificationfeedback.id;
3685+
3686 CREATE TABLE specificationmessage (
3687 id integer NOT NULL,
3688 specification integer,
3689 message integer
3690 );
3691
3692+CREATE SEQUENCE specificationmessage_id_seq
3693+ INCREMENT BY 1
3694+ NO MAXVALUE
3695+ NO MINVALUE
3696+ CACHE 1;
3697+
3698+ALTER SEQUENCE specificationmessage_id_seq OWNED BY specificationmessage.id;
3699+
3700 CREATE TABLE specificationsubscription (
3701 id integer NOT NULL,
3702 specification integer NOT NULL,
3703@@ -2515,12 +4521,28 @@
3704 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3705 );
3706
3707+CREATE SEQUENCE specificationsubscription_id_seq
3708+ INCREMENT BY 1
3709+ NO MAXVALUE
3710+ NO MINVALUE
3711+ CACHE 1;
3712+
3713+ALTER SEQUENCE specificationsubscription_id_seq OWNED BY specificationsubscription.id;
3714+
3715 CREATE TABLE spokenin (
3716 language integer NOT NULL,
3717 country integer NOT NULL,
3718 id integer DEFAULT nextval(('spokenin_id_seq'::text)::regclass) NOT NULL
3719 );
3720
3721+CREATE SEQUENCE spokenin_id_seq
3722+ INCREMENT BY 1
3723+ NO MAXVALUE
3724+ NO MINVALUE
3725+ CACHE 1;
3726+
3727+ALTER SEQUENCE spokenin_id_seq OWNED BY spokenin.id;
3728+
3729 CREATE TABLE sprint (
3730 id integer NOT NULL,
3731 owner integer NOT NULL,
3732@@ -2541,6 +4563,14 @@
3733 CONSTRAINT sprint_starts_before_ends CHECK ((time_starts < time_ends))
3734 );
3735
3736+CREATE SEQUENCE sprint_id_seq
3737+ INCREMENT BY 1
3738+ NO MAXVALUE
3739+ NO MINVALUE
3740+ CACHE 1;
3741+
3742+ALTER SEQUENCE sprint_id_seq OWNED BY sprint.id;
3743+
3744 CREATE TABLE sprintattendance (
3745 id integer NOT NULL,
3746 attendee integer NOT NULL,
3747@@ -2551,6 +4581,14 @@
3748 CONSTRAINT sprintattendance_starts_before_ends CHECK ((time_starts < time_ends))
3749 );
3750
3751+CREATE SEQUENCE sprintattendance_id_seq
3752+ INCREMENT BY 1
3753+ NO MAXVALUE
3754+ NO MINVALUE
3755+ CACHE 1;
3756+
3757+ALTER SEQUENCE sprintattendance_id_seq OWNED BY sprintattendance.id;
3758+
3759 CREATE TABLE sprintspecification (
3760 id integer NOT NULL,
3761 sprint integer NOT NULL,
3762@@ -2564,6 +4602,14 @@
3763 CONSTRAINT sprintspecification_decision_recorded CHECK (((status = 30) OR ((decider IS NOT NULL) AND (date_decided IS NOT NULL))))
3764 );
3765
3766+CREATE SEQUENCE sprintspecification_id_seq
3767+ INCREMENT BY 1
3768+ NO MAXVALUE
3769+ NO MINVALUE
3770+ CACHE 1;
3771+
3772+ALTER SEQUENCE sprintspecification_id_seq OWNED BY sprintspecification.id;
3773+
3774 CREATE TABLE sshkey (
3775 id integer NOT NULL,
3776 person integer,
3777@@ -2573,6 +4619,14 @@
3778 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3779 );
3780
3781+CREATE SEQUENCE sshkey_id_seq
3782+ INCREMENT BY 1
3783+ NO MAXVALUE
3784+ NO MINVALUE
3785+ CACHE 1;
3786+
3787+ALTER SEQUENCE sshkey_id_seq OWNED BY sshkey.id;
3788+
3789 CREATE TABLE standardshipitrequest (
3790 id integer NOT NULL,
3791 quantityx86 integer NOT NULL,
3792@@ -2586,6 +4640,29 @@
3793 CONSTRAINT quantityx86_is_positive CHECK ((quantityx86 >= 0))
3794 );
3795
3796+CREATE SEQUENCE standardshipitrequest_id_seq
3797+ INCREMENT BY 1
3798+ NO MAXVALUE
3799+ NO MINVALUE
3800+ CACHE 1;
3801+
3802+ALTER SEQUENCE standardshipitrequest_id_seq OWNED BY standardshipitrequest.id;
3803+
3804+CREATE TABLE staticdiff (
3805+ id integer NOT NULL,
3806+ from_revision_id text NOT NULL,
3807+ to_revision_id text NOT NULL,
3808+ diff integer NOT NULL
3809+);
3810+
3811+CREATE SEQUENCE staticdiff_id_seq
3812+ INCREMENT BY 1
3813+ NO MAXVALUE
3814+ NO MINVALUE
3815+ CACHE 1;
3816+
3817+ALTER SEQUENCE staticdiff_id_seq OWNED BY staticdiff.id;
3818+
3819 CREATE TABLE structuralsubscription (
3820 id integer NOT NULL,
3821 product integer,
3822@@ -2605,6 +4682,14 @@
3823 CONSTRAINT sourcepackagename_requires_distribution CHECK (((sourcepackagename IS NULL) OR (distribution IS NOT NULL)))
3824 );
3825
3826+CREATE SEQUENCE structuralsubscription_id_seq
3827+ INCREMENT BY 1
3828+ NO MAXVALUE
3829+ NO MINVALUE
3830+ CACHE 1;
3831+
3832+ALTER SEQUENCE structuralsubscription_id_seq OWNED BY structuralsubscription.id;
3833+
3834 CREATE TABLE teammembership (
3835 id integer NOT NULL,
3836 person integer NOT NULL,
3837@@ -2627,12 +4712,28 @@
3838 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3839 );
3840
3841+CREATE SEQUENCE teammembership_id_seq
3842+ INCREMENT BY 1
3843+ NO MAXVALUE
3844+ NO MINVALUE
3845+ CACHE 1;
3846+
3847+ALTER SEQUENCE teammembership_id_seq OWNED BY teammembership.id;
3848+
3849 CREATE TABLE teamparticipation (
3850 id integer NOT NULL,
3851 team integer NOT NULL,
3852 person integer NOT NULL
3853 );
3854
3855+CREATE SEQUENCE teamparticipation_id_seq
3856+ INCREMENT BY 1
3857+ NO MAXVALUE
3858+ NO MINVALUE
3859+ CACHE 1;
3860+
3861+ALTER SEQUENCE teamparticipation_id_seq OWNED BY teamparticipation.id;
3862+
3863 CREATE TABLE temporaryblobstorage (
3864 id integer NOT NULL,
3865 uuid text NOT NULL,
3866@@ -2640,15 +4741,32 @@
3867 file_alias integer NOT NULL
3868 );
3869
3870+CREATE SEQUENCE temporaryblobstorage_id_seq
3871+ INCREMENT BY 1
3872+ NO MAXVALUE
3873+ NO MINVALUE
3874+ CACHE 1;
3875+
3876+ALTER SEQUENCE temporaryblobstorage_id_seq OWNED BY temporaryblobstorage.id;
3877+
3878 CREATE TABLE translationgroup (
3879 id integer NOT NULL,
3880 name text NOT NULL,
3881 title text,
3882 summary text,
3883 datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
3884- owner integer NOT NULL
3885+ owner integer NOT NULL,
3886+ translation_guide_url text
3887 );
3888
3889+CREATE SEQUENCE translationgroup_id_seq
3890+ INCREMENT BY 1
3891+ NO MAXVALUE
3892+ NO MINVALUE
3893+ CACHE 1;
3894+
3895+ALTER SEQUENCE translationgroup_id_seq OWNED BY translationgroup.id;
3896+
3897 CREATE TABLE translationimportqueueentry (
3898 id integer NOT NULL,
3899 path text NOT NULL,
3900@@ -2664,9 +4782,54 @@
3901 status integer DEFAULT 5 NOT NULL,
3902 date_status_changed timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
3903 format integer DEFAULT 1 NOT NULL,
3904+ error_output text,
3905 CONSTRAINT valid_link CHECK ((((productseries IS NULL) <> (distroseries IS NULL)) AND ((distroseries IS NULL) = (sourcepackagename IS NULL))))
3906 );
3907
3908+CREATE SEQUENCE translationimportqueueentry_id_seq
3909+ INCREMENT BY 1
3910+ NO MAXVALUE
3911+ NO MINVALUE
3912+ CACHE 1;
3913+
3914+ALTER SEQUENCE translationimportqueueentry_id_seq OWNED BY translationimportqueueentry.id;
3915+
3916+CREATE TABLE translationmessage (
3917+ id integer NOT NULL,
3918+ pofile integer,
3919+ potmsgset integer NOT NULL,
3920+ date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
3921+ submitter integer NOT NULL,
3922+ date_reviewed timestamp without time zone,
3923+ reviewer integer,
3924+ msgstr0 integer,
3925+ msgstr1 integer,
3926+ msgstr2 integer,
3927+ msgstr3 integer,
3928+ comment text,
3929+ origin integer NOT NULL,
3930+ validation_status integer DEFAULT 0 NOT NULL,
3931+ is_current boolean DEFAULT false NOT NULL,
3932+ is_fuzzy boolean DEFAULT false NOT NULL,
3933+ is_imported boolean DEFAULT false NOT NULL,
3934+ was_obsolete_in_last_import boolean DEFAULT false NOT NULL,
3935+ was_fuzzy_in_last_import boolean DEFAULT false NOT NULL,
3936+ msgstr4 integer,
3937+ msgstr5 integer,
3938+ potemplate integer,
3939+ language integer,
3940+ variant text,
3941+ CONSTRAINT translationmessage__reviewer__date_reviewed__valid CHECK (((reviewer IS NULL) = (date_reviewed IS NULL)))
3942+);
3943+
3944+CREATE SEQUENCE translationmessage_id_seq
3945+ INCREMENT BY 1
3946+ NO MAXVALUE
3947+ NO MINVALUE
3948+ CACHE 1;
3949+
3950+ALTER SEQUENCE translationmessage_id_seq OWNED BY translationmessage.id;
3951+
3952 CREATE TABLE translationrelicensingagreement (
3953 id integer NOT NULL,
3954 person integer NOT NULL,
3955@@ -2674,21 +4837,55 @@
3956 date_decided timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL
3957 );
3958
3959-CREATE TABLE translationtemplateitem (
3960- id integer NOT NULL,
3961- potemplate integer NOT NULL,
3962- sequence integer NOT NULL,
3963- potmsgset integer NOT NULL,
3964- CONSTRAINT translationtemplateitem_sequence_check CHECK ((sequence > 0))
3965-);
3966+CREATE SEQUENCE translationrelicensingagreement_id_seq
3967+ INCREMENT BY 1
3968+ NO MAXVALUE
3969+ NO MINVALUE
3970+ CACHE 1;
3971+
3972+ALTER SEQUENCE translationrelicensingagreement_id_seq OWNED BY translationrelicensingagreement.id;
3973+
3974+CREATE SEQUENCE translationtemplateitem_id_seq
3975+ INCREMENT BY 1
3976+ NO MAXVALUE
3977+ NO MINVALUE
3978+ CACHE 1;
3979+
3980+ALTER SEQUENCE translationtemplateitem_id_seq OWNED BY translationtemplateitem.id;
3981
3982 CREATE TABLE translator (
3983 id integer NOT NULL,
3984 translationgroup integer NOT NULL,
3985 language integer NOT NULL,
3986 translator integer NOT NULL,
3987- datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL
3988-);
3989+ datecreated timestamp without time zone DEFAULT timezone('UTC'::text, ('now'::text)::timestamp(6) with time zone) NOT NULL,
3990+ style_guide_url text
3991+);
3992+
3993+CREATE SEQUENCE translator_id_seq
3994+ INCREMENT BY 1
3995+ NO MAXVALUE
3996+ NO MINVALUE
3997+ CACHE 1;
3998+
3999+ALTER SEQUENCE translator_id_seq OWNED BY translator.id;
4000+
4001+CREATE TABLE usertouseremail (
4002+ id integer NOT NULL,
4003+ sender integer NOT NULL,
4004+ recipient integer NOT NULL,
4005+ date_sent timestamp without time zone DEFAULT timezone('UTC'::text, now()) NOT NULL,
4006+ subject text NOT NULL,
4007+ message_id text NOT NULL
4008+);
4009+
4010+CREATE SEQUENCE usertouseremail_id_seq
4011+ INCREMENT BY 1
4012+ NO MAXVALUE
4013+ NO MINVALUE
4014+ CACHE 1;
4015+
4016+ALTER SEQUENCE usertouseremail_id_seq OWNED BY usertouseremail.id;
4017
4018 CREATE VIEW validpersoncache AS
4019 SELECT emailaddress.person AS id FROM emailaddress, account WHERE ((((emailaddress.account = account.id) AND (emailaddress.person IS NOT NULL)) AND (emailaddress.status = 4)) AND (account.status = 20));
4020@@ -2705,12 +4902,28 @@
4021 token text NOT NULL
4022 );
4023
4024+CREATE SEQUENCE vote_id_seq
4025+ INCREMENT BY 1
4026+ NO MAXVALUE
4027+ NO MINVALUE
4028+ CACHE 1;
4029+
4030+ALTER SEQUENCE vote_id_seq OWNED BY vote.id;
4031+
4032 CREATE TABLE votecast (
4033 id integer NOT NULL,
4034 person integer NOT NULL,
4035 poll integer NOT NULL
4036 );
4037
4038+CREATE SEQUENCE votecast_id_seq
4039+ INCREMENT BY 1
4040+ NO MAXVALUE
4041+ NO MINVALUE
4042+ CACHE 1;
4043+
4044+ALTER SEQUENCE votecast_id_seq OWNED BY votecast.id;
4045+
4046 CREATE TABLE webserviceban (
4047 id integer NOT NULL,
4048 date_created timestamp without time zone DEFAULT timezone('UTC'::text, now()),
4049@@ -2723,6 +4936,14 @@
4050 CONSTRAINT person_or_consumer_or_token_or_none CHECK ((null_count(ARRAY[person, consumer, token]) >= 2))
4051 );
4052
4053+CREATE SEQUENCE webserviceban_id_seq
4054+ INCREMENT BY 1
4055+ NO MAXVALUE
4056+ NO MINVALUE
4057+ CACHE 1;
4058+
4059+ALTER SEQUENCE webserviceban_id_seq OWNED BY webserviceban.id;
4060+
4061 CREATE TABLE wikiname (
4062 id integer NOT NULL,
4063 person integer NOT NULL,
4064@@ -2730,1864 +4951,6 @@
4065 wikiname text NOT NULL
4066 );
4067
4068-CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler
4069- AS '$libdir/plpgsql', 'plpgsql_call_handler'
4070- LANGUAGE c;
4071-
4072-CREATE FUNCTION plpython_call_handler() RETURNS language_handler
4073- AS '$libdir/plpython', 'plpython_call_handler'
4074- LANGUAGE c;
4075-
4076-CREATE SEQUENCE account_id_seq
4077- INCREMENT BY 1
4078- NO MAXVALUE
4079- NO MINVALUE
4080- CACHE 1;
4081-
4082-ALTER SEQUENCE account_id_seq OWNED BY account.id;
4083-
4084-CREATE SEQUENCE accountpassword_id_seq
4085- INCREMENT BY 1
4086- NO MAXVALUE
4087- NO MINVALUE
4088- CACHE 1;
4089-
4090-ALTER SEQUENCE accountpassword_id_seq OWNED BY accountpassword.id;
4091-
4092-CREATE SEQUENCE announcement_id_seq
4093- INCREMENT BY 1
4094- NO MAXVALUE
4095- NO MINVALUE
4096- CACHE 1;
4097-
4098-ALTER SEQUENCE announcement_id_seq OWNED BY announcement.id;
4099-
4100-CREATE SEQUENCE answercontact_id_seq
4101- INCREMENT BY 1
4102- NO MAXVALUE
4103- NO MINVALUE
4104- CACHE 1;
4105-
4106-ALTER SEQUENCE answercontact_id_seq OWNED BY answercontact.id;
4107-
4108-CREATE SEQUENCE archive_id_seq
4109- INCREMENT BY 1
4110- NO MAXVALUE
4111- NO MINVALUE
4112- CACHE 1;
4113-
4114-ALTER SEQUENCE archive_id_seq OWNED BY archive.id;
4115-
4116-CREATE SEQUENCE archivearch_id_seq
4117- START WITH 1
4118- INCREMENT BY 1
4119- NO MAXVALUE
4120- NO MINVALUE
4121- CACHE 1;
4122-
4123-ALTER SEQUENCE archivearch_id_seq OWNED BY archivearch.id;
4124-
4125-CREATE SEQUENCE archiveauthtoken_id_seq
4126- START WITH 1
4127- INCREMENT BY 1
4128- NO MAXVALUE
4129- NO MINVALUE
4130- CACHE 1;
4131-
4132-ALTER SEQUENCE archiveauthtoken_id_seq OWNED BY archiveauthtoken.id;
4133-
4134-CREATE SEQUENCE archivedependency_id_seq
4135- INCREMENT BY 1
4136- NO MAXVALUE
4137- NO MINVALUE
4138- CACHE 1;
4139-
4140-ALTER SEQUENCE archivedependency_id_seq OWNED BY archivedependency.id;
4141-
4142-CREATE SEQUENCE archivepermission_id_seq
4143- INCREMENT BY 1
4144- NO MAXVALUE
4145- NO MINVALUE
4146- CACHE 1;
4147-
4148-ALTER SEQUENCE archivepermission_id_seq OWNED BY archivepermission.id;
4149-
4150-CREATE SEQUENCE archivesubscriber_id_seq
4151- START WITH 1
4152- INCREMENT BY 1
4153- NO MAXVALUE
4154- NO MINVALUE
4155- CACHE 1;
4156-
4157-ALTER SEQUENCE archivesubscriber_id_seq OWNED BY archivesubscriber.id;
4158-
4159-CREATE SEQUENCE binarypackagefile_id_seq
4160- INCREMENT BY 1
4161- NO MAXVALUE
4162- NO MINVALUE
4163- CACHE 1;
4164-
4165-CREATE SEQUENCE binarypackagename_id_seq
4166- INCREMENT BY 1
4167- NO MAXVALUE
4168- NO MINVALUE
4169- CACHE 1;
4170-
4171-ALTER SEQUENCE binarypackagename_id_seq OWNED BY binarypackagename.id;
4172-
4173-CREATE SEQUENCE binarypackagerelease_id_seq
4174- INCREMENT BY 1
4175- NO MAXVALUE
4176- NO MINVALUE
4177- CACHE 1;
4178-
4179-ALTER SEQUENCE binarypackagerelease_id_seq OWNED BY binarypackagerelease.id;
4180-
4181-CREATE SEQUENCE bounty_id_seq
4182- INCREMENT BY 1
4183- NO MAXVALUE
4184- NO MINVALUE
4185- CACHE 1;
4186-
4187-ALTER SEQUENCE bounty_id_seq OWNED BY bounty.id;
4188-
4189-CREATE SEQUENCE bountymessage_id_seq
4190- INCREMENT BY 1
4191- NO MAXVALUE
4192- NO MINVALUE
4193- CACHE 1;
4194-
4195-ALTER SEQUENCE bountymessage_id_seq OWNED BY bountymessage.id;
4196-
4197-CREATE SEQUENCE bountysubscription_id_seq
4198- INCREMENT BY 1
4199- NO MAXVALUE
4200- NO MINVALUE
4201- CACHE 1;
4202-
4203-ALTER SEQUENCE bountysubscription_id_seq OWNED BY bountysubscription.id;
4204-
4205-CREATE SEQUENCE branch_id_seq
4206- INCREMENT BY 1
4207- NO MAXVALUE
4208- NO MINVALUE
4209- CACHE 1;
4210-
4211-ALTER SEQUENCE branch_id_seq OWNED BY branch.id;
4212-
4213-CREATE SEQUENCE branchmergeproposal_id_seq
4214- INCREMENT BY 1
4215- NO MAXVALUE
4216- NO MINVALUE
4217- CACHE 1;
4218-
4219-ALTER SEQUENCE branchmergeproposal_id_seq OWNED BY branchmergeproposal.id;
4220-
4221-CREATE SEQUENCE branchmergerobot_id_seq
4222- START WITH 1
4223- INCREMENT BY 1
4224- NO MAXVALUE
4225- NO MINVALUE
4226- CACHE 1;
4227-
4228-ALTER SEQUENCE branchmergerobot_id_seq OWNED BY branchmergerobot.id;
4229-
4230-CREATE SEQUENCE branchrelationship_id_seq
4231- START WITH 1
4232- INCREMENT BY 1
4233- NO MAXVALUE
4234- NO MINVALUE
4235- CACHE 1;
4236-
4237-CREATE SEQUENCE branchrevision_id_seq
4238- INCREMENT BY 1
4239- NO MAXVALUE
4240- NO MINVALUE
4241- CACHE 1;
4242-
4243-ALTER SEQUENCE branchrevision_id_seq OWNED BY branchrevision.id;
4244-
4245-CREATE SEQUENCE branchsubscription_id_seq
4246- INCREMENT BY 1
4247- NO MAXVALUE
4248- NO MINVALUE
4249- CACHE 1;
4250-
4251-ALTER SEQUENCE branchsubscription_id_seq OWNED BY branchsubscription.id;
4252-
4253-CREATE SEQUENCE branchvisibilitypolicy_id_seq
4254- INCREMENT BY 1
4255- NO MAXVALUE
4256- NO MINVALUE
4257- CACHE 1;
4258-
4259-ALTER SEQUENCE branchvisibilitypolicy_id_seq OWNED BY branchvisibilitypolicy.id;
4260-
4261-CREATE SEQUENCE bug_id_seq
4262- INCREMENT BY 1
4263- NO MAXVALUE
4264- NO MINVALUE
4265- CACHE 1;
4266-
4267-ALTER SEQUENCE bug_id_seq OWNED BY bug.id;
4268-
4269-CREATE SEQUENCE bugactivity_id_seq
4270- INCREMENT BY 1
4271- NO MAXVALUE
4272- NO MINVALUE
4273- CACHE 1;
4274-
4275-ALTER SEQUENCE bugactivity_id_seq OWNED BY bugactivity.id;
4276-
4277-CREATE SEQUENCE bugaffectsperson_id_seq
4278- START WITH 1
4279- INCREMENT BY 1
4280- NO MAXVALUE
4281- NO MINVALUE
4282- CACHE 1;
4283-
4284-ALTER SEQUENCE bugaffectsperson_id_seq OWNED BY bugaffectsperson.id;
4285-
4286-CREATE SEQUENCE bugattachment_id_seq
4287- INCREMENT BY 1
4288- NO MAXVALUE
4289- NO MINVALUE
4290- CACHE 1;
4291-
4292-ALTER SEQUENCE bugattachment_id_seq OWNED BY bugattachment.id;
4293-
4294-CREATE SEQUENCE bugbranch_id_seq
4295- INCREMENT BY 1
4296- NO MAXVALUE
4297- NO MINVALUE
4298- CACHE 1;
4299-
4300-ALTER SEQUENCE bugbranch_id_seq OWNED BY bugbranch.id;
4301-
4302-CREATE SEQUENCE bugcve_id_seq
4303- INCREMENT BY 1
4304- NO MAXVALUE
4305- NO MINVALUE
4306- CACHE 1;
4307-
4308-ALTER SEQUENCE bugcve_id_seq OWNED BY bugcve.id;
4309-
4310-CREATE SEQUENCE bugmessage_id_seq
4311- INCREMENT BY 1
4312- NO MAXVALUE
4313- NO MINVALUE
4314- CACHE 1;
4315-
4316-ALTER SEQUENCE bugmessage_id_seq OWNED BY bugmessage.id;
4317-
4318-CREATE SEQUENCE bugnomination_id_seq
4319- INCREMENT BY 1
4320- NO MAXVALUE
4321- NO MINVALUE
4322- CACHE 1;
4323-
4324-ALTER SEQUENCE bugnomination_id_seq OWNED BY bugnomination.id;
4325-
4326-CREATE SEQUENCE bugnotification_id_seq
4327- INCREMENT BY 1
4328- NO MAXVALUE
4329- NO MINVALUE
4330- CACHE 1;
4331-
4332-ALTER SEQUENCE bugnotification_id_seq OWNED BY bugnotification.id;
4333-
4334-CREATE SEQUENCE bugnotificationrecipient_id_seq
4335- INCREMENT BY 1
4336- NO MAXVALUE
4337- NO MINVALUE
4338- CACHE 1;
4339-
4340-ALTER SEQUENCE bugnotificationrecipient_id_seq OWNED BY bugnotificationrecipient.id;
4341-
4342-CREATE SEQUENCE bugpackageinfestation_id_seq
4343- START WITH 1
4344- INCREMENT BY 1
4345- NO MAXVALUE
4346- NO MINVALUE
4347- CACHE 1;
4348-
4349-ALTER SEQUENCE bugpackageinfestation_id_seq OWNED BY bugpackageinfestation.id;
4350-
4351-CREATE SEQUENCE bugproductinfestation_id_seq
4352- START WITH 1
4353- INCREMENT BY 1
4354- NO MAXVALUE
4355- NO MINVALUE
4356- CACHE 1;
4357-
4358-ALTER SEQUENCE bugproductinfestation_id_seq OWNED BY bugproductinfestation.id;
4359-
4360-CREATE SEQUENCE bugsubscription_id_seq
4361- INCREMENT BY 1
4362- NO MAXVALUE
4363- NO MINVALUE
4364- CACHE 1;
4365-
4366-ALTER SEQUENCE bugsubscription_id_seq OWNED BY bugsubscription.id;
4367-
4368-CREATE SEQUENCE bugtag_id_seq
4369- INCREMENT BY 1
4370- NO MAXVALUE
4371- NO MINVALUE
4372- CACHE 1;
4373-
4374-ALTER SEQUENCE bugtag_id_seq OWNED BY bugtag.id;
4375-
4376-CREATE SEQUENCE bugtask_id_seq
4377- INCREMENT BY 1
4378- NO MAXVALUE
4379- NO MINVALUE
4380- CACHE 1;
4381-
4382-ALTER SEQUENCE bugtask_id_seq OWNED BY bugtask.id;
4383-
4384-CREATE SEQUENCE bugtracker_id_seq
4385- INCREMENT BY 1
4386- NO MAXVALUE
4387- NO MINVALUE
4388- CACHE 1;
4389-
4390-ALTER SEQUENCE bugtracker_id_seq OWNED BY bugtracker.id;
4391-
4392-CREATE SEQUENCE bugtrackeralias_id_seq
4393- INCREMENT BY 1
4394- NO MAXVALUE
4395- NO MINVALUE
4396- CACHE 1;
4397-
4398-ALTER SEQUENCE bugtrackeralias_id_seq OWNED BY bugtrackeralias.id;
4399-
4400-CREATE SEQUENCE bugtrackerperson_id_seq
4401- START WITH 1
4402- INCREMENT BY 1
4403- NO MAXVALUE
4404- NO MINVALUE
4405- CACHE 1;
4406-
4407-ALTER SEQUENCE bugtrackerperson_id_seq OWNED BY bugtrackerperson.id;
4408-
4409-CREATE SEQUENCE bugwatch_id_seq
4410- INCREMENT BY 1
4411- NO MAXVALUE
4412- NO MINVALUE
4413- CACHE 1;
4414-
4415-ALTER SEQUENCE bugwatch_id_seq OWNED BY bugwatch.id;
4416-
4417-CREATE SEQUENCE build_id_seq
4418- INCREMENT BY 1
4419- NO MAXVALUE
4420- NO MINVALUE
4421- CACHE 1;
4422-
4423-ALTER SEQUENCE build_id_seq OWNED BY build.id;
4424-
4425-CREATE SEQUENCE builder_id_seq
4426- INCREMENT BY 1
4427- NO MAXVALUE
4428- NO MINVALUE
4429- CACHE 1;
4430-
4431-ALTER SEQUENCE builder_id_seq OWNED BY builder.id;
4432-
4433-CREATE SEQUENCE buildqueue_id_seq
4434- INCREMENT BY 1
4435- NO MAXVALUE
4436- NO MINVALUE
4437- CACHE 1;
4438-
4439-ALTER SEQUENCE buildqueue_id_seq OWNED BY buildqueue.id;
4440-
4441-CREATE SEQUENCE codeimport_id_seq
4442- INCREMENT BY 1
4443- NO MAXVALUE
4444- NO MINVALUE
4445- CACHE 1;
4446-
4447-ALTER SEQUENCE codeimport_id_seq OWNED BY codeimport.id;
4448-
4449-CREATE SEQUENCE codeimportevent_id_seq
4450- INCREMENT BY 1
4451- NO MAXVALUE
4452- NO MINVALUE
4453- CACHE 1;
4454-
4455-ALTER SEQUENCE codeimportevent_id_seq OWNED BY codeimportevent.id;
4456-
4457-CREATE SEQUENCE codeimporteventdata_id_seq
4458- INCREMENT BY 1
4459- NO MAXVALUE
4460- NO MINVALUE
4461- CACHE 1;
4462-
4463-ALTER SEQUENCE codeimporteventdata_id_seq OWNED BY codeimporteventdata.id;
4464-
4465-CREATE SEQUENCE codeimportjob_id_seq
4466- INCREMENT BY 1
4467- NO MAXVALUE
4468- NO MINVALUE
4469- CACHE 1;
4470-
4471-ALTER SEQUENCE codeimportjob_id_seq OWNED BY codeimportjob.id;
4472-
4473-CREATE SEQUENCE codeimportmachine_id_seq
4474- INCREMENT BY 1
4475- NO MAXVALUE
4476- NO MINVALUE
4477- CACHE 1;
4478-
4479-ALTER SEQUENCE codeimportmachine_id_seq OWNED BY codeimportmachine.id;
4480-
4481-CREATE SEQUENCE codeimportresult_id_seq
4482- INCREMENT BY 1
4483- NO MAXVALUE
4484- NO MINVALUE
4485- CACHE 1;
4486-
4487-ALTER SEQUENCE codeimportresult_id_seq OWNED BY codeimportresult.id;
4488-
4489-CREATE SEQUENCE codereviewmessage_id_seq
4490- INCREMENT BY 1
4491- NO MAXVALUE
4492- NO MINVALUE
4493- CACHE 1;
4494-
4495-ALTER SEQUENCE codereviewmessage_id_seq OWNED BY codereviewmessage.id;
4496-
4497-CREATE SEQUENCE codereviewvote_id_seq
4498- INCREMENT BY 1
4499- NO MAXVALUE
4500- NO MINVALUE
4501- CACHE 1;
4502-
4503-ALTER SEQUENCE codereviewvote_id_seq OWNED BY codereviewvote.id;
4504-
4505-CREATE SEQUENCE commercialsubscription_id_seq
4506- INCREMENT BY 1
4507- NO MAXVALUE
4508- NO MINVALUE
4509- CACHE 1;
4510-
4511-ALTER SEQUENCE commercialsubscription_id_seq OWNED BY commercialsubscription.id;
4512-
4513-CREATE SEQUENCE component_id_seq
4514- INCREMENT BY 1
4515- NO MAXVALUE
4516- NO MINVALUE
4517- CACHE 1;
4518-
4519-ALTER SEQUENCE component_id_seq OWNED BY component.id;
4520-
4521-CREATE SEQUENCE componentselection_id_seq
4522- INCREMENT BY 1
4523- NO MAXVALUE
4524- NO MINVALUE
4525- CACHE 1;
4526-
4527-ALTER SEQUENCE componentselection_id_seq OWNED BY componentselection.id;
4528-
4529-CREATE SEQUENCE continent_id_seq
4530- START WITH 1
4531- INCREMENT BY 1
4532- NO MAXVALUE
4533- NO MINVALUE
4534- CACHE 1;
4535-
4536-ALTER SEQUENCE continent_id_seq OWNED BY continent.id;
4537-
4538-CREATE SEQUENCE country_id_seq
4539- INCREMENT BY 1
4540- NO MAXVALUE
4541- NO MINVALUE
4542- CACHE 1;
4543-
4544-ALTER SEQUENCE country_id_seq OWNED BY country.id;
4545-
4546-CREATE SEQUENCE customlanguagecode_id_seq
4547- INCREMENT BY 1
4548- NO MAXVALUE
4549- NO MINVALUE
4550- CACHE 1;
4551-
4552-ALTER SEQUENCE customlanguagecode_id_seq OWNED BY customlanguagecode.id;
4553-
4554-CREATE SEQUENCE cve_id_seq
4555- INCREMENT BY 1
4556- NO MAXVALUE
4557- NO MINVALUE
4558- CACHE 1;
4559-
4560-ALTER SEQUENCE cve_id_seq OWNED BY cve.id;
4561-
4562-CREATE SEQUENCE cvereference_id_seq
4563- INCREMENT BY 1
4564- NO MAXVALUE
4565- NO MINVALUE
4566- CACHE 1;
4567-
4568-ALTER SEQUENCE cvereference_id_seq OWNED BY cvereference.id;
4569-
4570-CREATE SEQUENCE distribution_id_seq
4571- INCREMENT BY 1
4572- NO MAXVALUE
4573- NO MINVALUE
4574- CACHE 1;
4575-
4576-ALTER SEQUENCE distribution_id_seq OWNED BY distribution.id;
4577-
4578-CREATE SEQUENCE distributionbounty_id_seq
4579- INCREMENT BY 1
4580- NO MAXVALUE
4581- NO MINVALUE
4582- CACHE 1;
4583-
4584-ALTER SEQUENCE distributionbounty_id_seq OWNED BY distributionbounty.id;
4585-
4586-CREATE SEQUENCE distributionmirror_id_seq
4587- INCREMENT BY 1
4588- NO MAXVALUE
4589- NO MINVALUE
4590- CACHE 1;
4591-
4592-ALTER SEQUENCE distributionmirror_id_seq OWNED BY distributionmirror.id;
4593-
4594-CREATE SEQUENCE distributionrole_id_seq
4595- START WITH 1
4596- INCREMENT BY 1
4597- NO MAXVALUE
4598- NO MINVALUE
4599- CACHE 1;
4600-
4601-CREATE SEQUENCE distributionsourcepackage_id_seq
4602- START WITH 1
4603- INCREMENT BY 1
4604- NO MAXVALUE
4605- NO MINVALUE
4606- CACHE 1;
4607-
4608-ALTER SEQUENCE distributionsourcepackage_id_seq OWNED BY distributionsourcepackage.id;
4609-
4610-CREATE SEQUENCE distributionsourcepackagecache_id_seq
4611- INCREMENT BY 1
4612- NO MAXVALUE
4613- NO MINVALUE
4614- CACHE 1;
4615-
4616-ALTER SEQUENCE distributionsourcepackagecache_id_seq OWNED BY distributionsourcepackagecache.id;
4617-
4618-CREATE SEQUENCE distroarchseries_id_seq
4619- INCREMENT BY 1
4620- NO MAXVALUE
4621- NO MINVALUE
4622- CACHE 1;
4623-
4624-ALTER SEQUENCE distroarchseries_id_seq OWNED BY distroarchseries.id;
4625-
4626-CREATE SEQUENCE distrocomponentuploader_id_seq
4627- INCREMENT BY 1
4628- NO MAXVALUE
4629- NO MINVALUE
4630- CACHE 1;
4631-
4632-ALTER SEQUENCE distrocomponentuploader_id_seq OWNED BY distrocomponentuploader.id;
4633-
4634-CREATE SEQUENCE distroseries_id_seq
4635- INCREMENT BY 1
4636- NO MAXVALUE
4637- NO MINVALUE
4638- CACHE 1;
4639-
4640-ALTER SEQUENCE distroseries_id_seq OWNED BY distroseries.id;
4641-
4642-CREATE SEQUENCE distroserieslanguage_id_seq
4643- INCREMENT BY 1
4644- NO MAXVALUE
4645- NO MINVALUE
4646- CACHE 1;
4647-
4648-ALTER SEQUENCE distroserieslanguage_id_seq OWNED BY distroserieslanguage.id;
4649-
4650-CREATE SEQUENCE distroseriespackagecache_id_seq
4651- INCREMENT BY 1
4652- NO MAXVALUE
4653- NO MINVALUE
4654- CACHE 1;
4655-
4656-ALTER SEQUENCE distroseriespackagecache_id_seq OWNED BY distroseriespackagecache.id;
4657-
4658-CREATE SEQUENCE emailaddress_id_seq
4659- INCREMENT BY 1
4660- NO MAXVALUE
4661- NO MINVALUE
4662- CACHE 1;
4663-
4664-ALTER SEQUENCE emailaddress_id_seq OWNED BY emailaddress.id;
4665-
4666-CREATE SEQUENCE entitlement_id_seq
4667- START WITH 1
4668- INCREMENT BY 1
4669- NO MAXVALUE
4670- NO MINVALUE
4671- CACHE 1;
4672-
4673-ALTER SEQUENCE entitlement_id_seq OWNED BY entitlement.id;
4674-
4675-CREATE SEQUENCE faq_id_seq
4676- INCREMENT BY 1
4677- NO MAXVALUE
4678- NO MINVALUE
4679- CACHE 1;
4680-
4681-ALTER SEQUENCE faq_id_seq OWNED BY faq.id;
4682-
4683-CREATE SEQUENCE featuredproject_id_seq
4684- INCREMENT BY 1
4685- NO MAXVALUE
4686- NO MINVALUE
4687- CACHE 1;
4688-
4689-ALTER SEQUENCE featuredproject_id_seq OWNED BY featuredproject.id;
4690-
4691-CREATE SEQUENCE fticache_id_seq
4692- INCREMENT BY 1
4693- NO MAXVALUE
4694- NO MINVALUE
4695- CACHE 1;
4696-
4697-ALTER SEQUENCE fticache_id_seq OWNED BY fticache.id;
4698-
4699-CREATE SEQUENCE gpgkey_id_seq
4700- INCREMENT BY 1
4701- NO MAXVALUE
4702- NO MINVALUE
4703- CACHE 1;
4704-
4705-ALTER SEQUENCE gpgkey_id_seq OWNED BY gpgkey.id;
4706-
4707-CREATE SEQUENCE hwdevice_id_seq
4708- START WITH 1
4709- INCREMENT BY 1
4710- NO MAXVALUE
4711- NO MINVALUE
4712- CACHE 1;
4713-
4714-ALTER SEQUENCE hwdevice_id_seq OWNED BY hwdevice.id;
4715-
4716-CREATE SEQUENCE hwdeviceclass_id_seq
4717- START WITH 1
4718- INCREMENT BY 1
4719- NO MAXVALUE
4720- NO MINVALUE
4721- CACHE 1;
4722-
4723-ALTER SEQUENCE hwdeviceclass_id_seq OWNED BY hwdeviceclass.id;
4724-
4725-CREATE SEQUENCE hwdevicedriverlink_id_seq
4726- START WITH 1
4727- INCREMENT BY 1
4728- NO MAXVALUE
4729- NO MINVALUE
4730- CACHE 1;
4731-
4732-ALTER SEQUENCE hwdevicedriverlink_id_seq OWNED BY hwdevicedriverlink.id;
4733-
4734-CREATE SEQUENCE hwdevicenamevariant_id_seq
4735- START WITH 1
4736- INCREMENT BY 1
4737- NO MAXVALUE
4738- NO MINVALUE
4739- CACHE 1;
4740-
4741-ALTER SEQUENCE hwdevicenamevariant_id_seq OWNED BY hwdevicenamevariant.id;
4742-
4743-CREATE SEQUENCE hwdriver_id_seq
4744- START WITH 1
4745- INCREMENT BY 1
4746- NO MAXVALUE
4747- NO MINVALUE
4748- CACHE 1;
4749-
4750-ALTER SEQUENCE hwdriver_id_seq OWNED BY hwdriver.id;
4751-
4752-CREATE SEQUENCE hwsubmission_id_seq
4753- INCREMENT BY 1
4754- NO MAXVALUE
4755- NO MINVALUE
4756- CACHE 1;
4757-
4758-ALTER SEQUENCE hwsubmission_id_seq OWNED BY hwsubmission.id;
4759-
4760-CREATE SEQUENCE hwsubmissionbug_id_seq
4761- START WITH 1
4762- INCREMENT BY 1
4763- NO MAXVALUE
4764- NO MINVALUE
4765- CACHE 1;
4766-
4767-ALTER SEQUENCE hwsubmissionbug_id_seq OWNED BY hwsubmissionbug.id;
4768-
4769-CREATE SEQUENCE hwsubmissiondevice_id_seq
4770- START WITH 1
4771- INCREMENT BY 1
4772- NO MAXVALUE
4773- NO MINVALUE
4774- CACHE 1;
4775-
4776-ALTER SEQUENCE hwsubmissiondevice_id_seq OWNED BY hwsubmissiondevice.id;
4777-
4778-CREATE SEQUENCE hwsystemfingerprint_id_seq
4779- INCREMENT BY 1
4780- NO MAXVALUE
4781- NO MINVALUE
4782- CACHE 1;
4783-
4784-ALTER SEQUENCE hwsystemfingerprint_id_seq OWNED BY hwsystemfingerprint.id;
4785-
4786-CREATE SEQUENCE hwtest_id_seq
4787- START WITH 1
4788- INCREMENT BY 1
4789- NO MAXVALUE
4790- NO MINVALUE
4791- CACHE 1;
4792-
4793-ALTER SEQUENCE hwtest_id_seq OWNED BY hwtest.id;
4794-
4795-CREATE SEQUENCE hwtestanswer_id_seq
4796- START WITH 1
4797- INCREMENT BY 1
4798- NO MAXVALUE
4799- NO MINVALUE
4800- CACHE 1;
4801-
4802-ALTER SEQUENCE hwtestanswer_id_seq OWNED BY hwtestanswer.id;
4803-
4804-CREATE SEQUENCE hwtestanswerchoice_id_seq
4805- START WITH 1
4806- INCREMENT BY 1
4807- NO MAXVALUE
4808- NO MINVALUE
4809- CACHE 1;
4810-
4811-ALTER SEQUENCE hwtestanswerchoice_id_seq OWNED BY hwtestanswerchoice.id;
4812-
4813-CREATE SEQUENCE hwtestanswercount_id_seq
4814- START WITH 1
4815- INCREMENT BY 1
4816- NO MAXVALUE
4817- NO MINVALUE
4818- CACHE 1;
4819-
4820-ALTER SEQUENCE hwtestanswercount_id_seq OWNED BY hwtestanswercount.id;
4821-
4822-CREATE SEQUENCE hwtestanswercountdevice_id_seq
4823- START WITH 1
4824- INCREMENT BY 1
4825- NO MAXVALUE
4826- NO MINVALUE
4827- CACHE 1;
4828-
4829-ALTER SEQUENCE hwtestanswercountdevice_id_seq OWNED BY hwtestanswercountdevice.id;
4830-
4831-CREATE SEQUENCE hwtestanswerdevice_id_seq
4832- START WITH 1
4833- INCREMENT BY 1
4834- NO MAXVALUE
4835- NO MINVALUE
4836- CACHE 1;
4837-
4838-ALTER SEQUENCE hwtestanswerdevice_id_seq OWNED BY hwtestanswerdevice.id;
4839-
4840-CREATE SEQUENCE hwvendorid_id_seq
4841- START WITH 1
4842- INCREMENT BY 1
4843- NO MAXVALUE
4844- NO MINVALUE
4845- CACHE 1;
4846-
4847-ALTER SEQUENCE hwvendorid_id_seq OWNED BY hwvendorid.id;
4848-
4849-CREATE SEQUENCE hwvendorname_id_seq
4850- START WITH 1
4851- INCREMENT BY 1
4852- NO MAXVALUE
4853- NO MINVALUE
4854- CACHE 1;
4855-
4856-ALTER SEQUENCE hwvendorname_id_seq OWNED BY hwvendorname.id;
4857-
4858-CREATE SEQUENCE ircid_id_seq
4859- INCREMENT BY 1
4860- NO MAXVALUE
4861- NO MINVALUE
4862- CACHE 1;
4863-
4864-ALTER SEQUENCE ircid_id_seq OWNED BY ircid.id;
4865-
4866-CREATE SEQUENCE jabberid_id_seq
4867- INCREMENT BY 1
4868- NO MAXVALUE
4869- NO MINVALUE
4870- CACHE 1;
4871-
4872-ALTER SEQUENCE jabberid_id_seq OWNED BY jabberid.id;
4873-
4874-CREATE SEQUENCE karma_id_seq
4875- INCREMENT BY 1
4876- NO MAXVALUE
4877- NO MINVALUE
4878- CACHE 1;
4879-
4880-ALTER SEQUENCE karma_id_seq OWNED BY karma.id;
4881-
4882-CREATE SEQUENCE karmaaction_id_seq
4883- INCREMENT BY 1
4884- NO MAXVALUE
4885- NO MINVALUE
4886- CACHE 1;
4887-
4888-ALTER SEQUENCE karmaaction_id_seq OWNED BY karmaaction.id;
4889-
4890-CREATE SEQUENCE karmacache_id_seq
4891- INCREMENT BY 1
4892- NO MAXVALUE
4893- NO MINVALUE
4894- CACHE 1;
4895-
4896-ALTER SEQUENCE karmacache_id_seq OWNED BY karmacache.id;
4897-
4898-CREATE SEQUENCE karmacategory_id_seq
4899- INCREMENT BY 1
4900- NO MAXVALUE
4901- NO MINVALUE
4902- CACHE 1;
4903-
4904-ALTER SEQUENCE karmacategory_id_seq OWNED BY karmacategory.id;
4905-
4906-CREATE SEQUENCE karmatotalcache_id_seq
4907- INCREMENT BY 1
4908- NO MAXVALUE
4909- NO MINVALUE
4910- CACHE 1;
4911-
4912-ALTER SEQUENCE karmatotalcache_id_seq OWNED BY karmatotalcache.id;
4913-
4914-CREATE SEQUENCE language_id_seq
4915- INCREMENT BY 1
4916- NO MAXVALUE
4917- NO MINVALUE
4918- CACHE 1;
4919-
4920-ALTER SEQUENCE language_id_seq OWNED BY language.id;
4921-
4922-CREATE SEQUENCE languagepack_id_seq
4923- INCREMENT BY 1
4924- NO MAXVALUE
4925- NO MINVALUE
4926- CACHE 1;
4927-
4928-ALTER SEQUENCE languagepack_id_seq OWNED BY languagepack.id;
4929-
4930-CREATE SEQUENCE launchpadstatistic_id_seq
4931- INCREMENT BY 1
4932- NO MAXVALUE
4933- NO MINVALUE
4934- CACHE 1;
4935-
4936-ALTER SEQUENCE launchpadstatistic_id_seq OWNED BY launchpadstatistic.id;
4937-
4938-CREATE SEQUENCE libraryfilealias_id_seq
4939- INCREMENT BY 1
4940- NO MAXVALUE
4941- NO MINVALUE
4942- CACHE 1;
4943-
4944-ALTER SEQUENCE libraryfilealias_id_seq OWNED BY libraryfilealias.id;
4945-
4946-CREATE SEQUENCE libraryfilecontent_id_seq
4947- INCREMENT BY 1
4948- NO MAXVALUE
4949- NO MINVALUE
4950- CACHE 1;
4951-
4952-ALTER SEQUENCE libraryfilecontent_id_seq OWNED BY libraryfilecontent.id;
4953-
4954-CREATE SEQUENCE logintoken_id_seq
4955- INCREMENT BY 1
4956- NO MAXVALUE
4957- NO MINVALUE
4958- CACHE 1;
4959-
4960-ALTER SEQUENCE logintoken_id_seq OWNED BY logintoken.id;
4961-
4962-CREATE SEQUENCE mailinglist_id_seq
4963- INCREMENT BY 1
4964- NO MAXVALUE
4965- NO MINVALUE
4966- CACHE 1;
4967-
4968-ALTER SEQUENCE mailinglist_id_seq OWNED BY mailinglist.id;
4969-
4970-CREATE SEQUENCE mailinglistban_id_seq
4971- START WITH 1
4972- INCREMENT BY 1
4973- NO MAXVALUE
4974- NO MINVALUE
4975- CACHE 1;
4976-
4977-ALTER SEQUENCE mailinglistban_id_seq OWNED BY mailinglistban.id;
4978-
4979-CREATE SEQUENCE mailinglistsubscription_id_seq
4980- INCREMENT BY 1
4981- NO MAXVALUE
4982- NO MINVALUE
4983- CACHE 1;
4984-
4985-ALTER SEQUENCE mailinglistsubscription_id_seq OWNED BY mailinglistsubscription.id;
4986-
4987-CREATE SEQUENCE mentoringoffer_id_seq
4988- INCREMENT BY 1
4989- NO MAXVALUE
4990- NO MINVALUE
4991- CACHE 1;
4992-
4993-ALTER SEQUENCE mentoringoffer_id_seq OWNED BY mentoringoffer.id;
4994-
4995-CREATE SEQUENCE message_id_seq
4996- INCREMENT BY 1
4997- NO MAXVALUE
4998- NO MINVALUE
4999- CACHE 1;
5000-
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to status/vote changes: