chiark / gitweb /
0b789fcf56858c42df3a91809ea49c2e8067568a
[odin-cgi] / sql / setup-shorturl.sql
1 /* -*-sql-*-
2  *
3  * Plain old SQL for setting up the tables for Odin web services.
4  *
5  * (c) 2015 Mark Wooding
6  */
7
8 /*----- Licensing notice ----------------------------------------------------
9  *
10  * This file is part of the `odin.gg' service, `odin-cgi'.
11  *
12  * `odin-cgi' is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU Affero General Public License as
14  * published by the Free Software Foundation; either version 3 of the
15  * License, or (at your option) any later version.
16  *
17  * `odin-cgi' is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU Affero General Public License for more details.
21  *
22  * You should have received a copy of the GNU Affero General Public
23  * License along with `odin-cgi'; if not, see
24  * <http://www.gnu.org/licenses/>.
25  */
26
27 /* The various tools assume that the database is appropriate configured with
28  * the SERIALIZABLE isolation level.
29  */
30
31 begin;
32
33 drop table if exists odin_shorturl;
34 drop table if exists odin_shorturl_seq;
35
36 create table odin_shorturl_seq (seq int);
37 insert into odin_shorturl_seq (seq) values (10000);
38
39 create table odin_shorturl
40         (tag varchar(16) primary key,
41          stamp bigint not null,
42          owner varchar(64) not null,
43          url text not null);
44 create index odin_shorturl_by_owner on odin_shorturl (owner);
45 create index odin_shorturl_by_url_owner on odin_shorturl (url, owner);
46
47 commit;