]> ruin.nu Git - ndwebbie.git/blob - database/ndawn.sql
New fleet infrastructure
[ndwebbie.git] / database / ndawn.sql
1 --
2 -- PostgreSQL database dump
3 --
4
5 SET client_encoding = 'UTF8';
6 SET standard_conforming_strings = off;
7 SET check_function_bodies = false;
8 SET client_min_messages = warning;
9 SET escape_string_warning = off;
10
11 --
12 -- Name: plperl; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: -
13 --
14
15 CREATE PROCEDURAL LANGUAGE plperl;
16
17
18 --
19 -- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: -
20 --
21
22 CREATE PROCEDURAL LANGUAGE plpgsql;
23
24
25 SET search_path = public, pg_catalog;
26
27 SET default_tablespace = '';
28
29 SET default_with_oids = false;
30
31 --
32 -- Name: alliance_stats; Type: TABLE; Schema: public; Owner: -; Tablespace: 
33 --
34
35 CREATE TABLE alliance_stats (
36     id integer NOT NULL,
37     tick integer NOT NULL,
38     size integer NOT NULL,
39     members integer NOT NULL,
40     score integer NOT NULL,
41     sizerank integer NOT NULL,
42     scorerank integer NOT NULL,
43     size_gain integer NOT NULL,
44     score_gain integer NOT NULL,
45     sizerank_gain integer NOT NULL,
46     scorerank_gain integer NOT NULL,
47     size_gain_day integer NOT NULL,
48     score_gain_day integer NOT NULL,
49     sizerank_gain_day integer NOT NULL,
50     scorerank_gain_day integer NOT NULL,
51     members_gain integer NOT NULL,
52     members_gain_day integer NOT NULL
53 );
54
55
56 --
57 -- Name: ead_status; Type: TYPE; Schema: public; Owner: -
58 --
59
60 CREATE TYPE ead_status AS ENUM (
61     '',
62     'NAP',
63     'Friendly',
64     'Hostile'
65 );
66
67
68 --
69 -- Name: alliances; Type: TABLE; Schema: public; Owner: -; Tablespace: 
70 --
71
72 CREATE TABLE alliances (
73     id integer NOT NULL,
74     name character varying NOT NULL,
75     relationship ead_status DEFAULT ''::ead_status NOT NULL
76 );
77
78
79 --
80 -- Name: calls; Type: TABLE; Schema: public; Owner: -; Tablespace: 
81 --
82
83 CREATE TABLE calls (
84     id integer NOT NULL,
85     member integer NOT NULL,
86     dc integer,
87     landing_tick integer NOT NULL,
88     info text NOT NULL,
89     covered boolean DEFAULT false NOT NULL,
90     shiptypes text,
91     open boolean DEFAULT true NOT NULL,
92     ftid integer
93 );
94
95
96 --
97 -- Name: channel_flags; Type: TABLE; Schema: public; Owner: -; Tablespace: 
98 --
99
100 CREATE TABLE channel_flags (
101     id integer NOT NULL,
102     name text NOT NULL
103 );
104
105
106 --
107 -- Name: channel_group_flags; Type: TABLE; Schema: public; Owner: -; Tablespace: 
108 --
109
110 CREATE TABLE channel_group_flags (
111     channel integer NOT NULL,
112     "group" integer NOT NULL,
113     flag integer NOT NULL
114 );
115
116
117 --
118 -- Name: channels; Type: TABLE; Schema: public; Owner: -; Tablespace: 
119 --
120
121 CREATE TABLE channels (
122     id integer NOT NULL,
123     name text NOT NULL,
124     description text NOT NULL
125 );
126
127
128 --
129 -- Name: covop_attacks; Type: TABLE; Schema: public; Owner: -; Tablespace: 
130 --
131
132 CREATE TABLE covop_attacks (
133     uid integer NOT NULL,
134     tick integer NOT NULL,
135     id integer NOT NULL
136 );
137
138
139 --
140 -- Name: governments; Type: TYPE; Schema: public; Owner: -
141 --
142
143 CREATE TYPE governments AS ENUM (
144     '',
145     'Feu',
146     'Dic',
147     'Dem',
148     'Uni'
149 );
150
151
152 --
153 -- Name: race; Type: TYPE; Schema: public; Owner: -
154 --
155
156 CREATE TYPE race AS ENUM (
157     'Ter',
158     'Cat',
159     'Xan',
160     'Zik',
161     'Etd'
162 );
163
164
165 --
166 -- Name: planet_stats; Type: TABLE; Schema: public; Owner: -; Tablespace: 
167 --
168
169 CREATE TABLE planet_stats (
170     id integer NOT NULL,
171     tick integer NOT NULL,
172     x integer NOT NULL,
173     y integer NOT NULL,
174     z integer NOT NULL,
175     size integer NOT NULL,
176     score integer NOT NULL,
177     value integer NOT NULL,
178     xp integer NOT NULL,
179     sizerank integer NOT NULL,
180     scorerank integer NOT NULL,
181     valuerank integer NOT NULL,
182     xprank integer NOT NULL,
183     size_gain integer NOT NULL,
184     score_gain integer NOT NULL,
185     value_gain integer NOT NULL,
186     xp_gain integer NOT NULL,
187     sizerank_gain integer NOT NULL,
188     scorerank_gain integer NOT NULL,
189     valuerank_gain integer NOT NULL,
190     xprank_gain integer NOT NULL,
191     size_gain_day integer NOT NULL,
192     score_gain_day integer NOT NULL,
193     value_gain_day integer NOT NULL,
194     xp_gain_day integer NOT NULL,
195     sizerank_gain_day integer NOT NULL,
196     scorerank_gain_day integer NOT NULL,
197     valuerank_gain_day integer NOT NULL,
198     xprank_gain_day integer NOT NULL
199 );
200
201
202 --
203 -- Name: planets; Type: TABLE; Schema: public; Owner: -; Tablespace: 
204 --
205
206 CREATE TABLE planets (
207     id integer NOT NULL,
208     ruler character varying NOT NULL,
209     planet character varying NOT NULL,
210     race race NOT NULL,
211     nick character varying,
212     planet_status ead_status DEFAULT ''::ead_status NOT NULL,
213     hit_us integer DEFAULT 0 NOT NULL,
214     alliance_id integer,
215     channel text,
216     ftid integer NOT NULL,
217     gov governments DEFAULT ''::governments NOT NULL
218 );
219
220
221 --
222 -- Name: current_planet_stats; Type: VIEW; Schema: public; Owner: -
223 --
224
225 CREATE VIEW current_planet_stats AS
226     SELECT p.id, p.nick, p.planet_status, p.hit_us, ps.x, ps.y, ps.z, p.ruler, p.planet, p.race, ps.size, ps.score, ps.value, ps.xp, ps.sizerank, ps.scorerank, ps.valuerank, ps.xprank, alliances.name AS alliance, alliances.relationship, p.alliance_id, p.channel, p.ftid, p.gov FROM (((SELECT planet_stats.id, planet_stats.tick, planet_stats.x, planet_stats.y, planet_stats.z, planet_stats.size, planet_stats.score, planet_stats.value, planet_stats.xp, planet_stats.sizerank, planet_stats.scorerank, planet_stats.valuerank, planet_stats.xprank FROM planet_stats WHERE (planet_stats.tick = (SELECT max(planet_stats.tick) AS max FROM planet_stats))) ps NATURAL JOIN planets p) LEFT JOIN alliances ON ((alliances.id = p.alliance_id)));
227
228
229 --
230 -- Name: current_planet_stats_full; Type: VIEW; Schema: public; Owner: -
231 --
232
233 CREATE VIEW current_planet_stats_full AS
234     SELECT p.id, p.nick, p.planet_status, p.hit_us, ps.x, ps.y, ps.z, p.ruler, p.planet, p.race, ps.size, ps.score, ps.value, ps.xp, ps.sizerank, ps.scorerank, ps.valuerank, ps.xprank, alliances.name AS alliance, alliances.relationship, p.alliance_id, p.channel, p.ftid, ps.size_gain, ps.score_gain, ps.value_gain, ps.xp_gain, ps.sizerank_gain, ps.scorerank_gain, ps.valuerank_gain, ps.xprank_gain, ps.size_gain_day, ps.score_gain_day, ps.value_gain_day, ps.xp_gain_day, ps.sizerank_gain_day, ps.scorerank_gain_day, ps.valuerank_gain_day, ps.xprank_gain_day, p.gov FROM (((SELECT planet_stats.id, planet_stats.tick, planet_stats.x, planet_stats.y, planet_stats.z, planet_stats.size, planet_stats.score, planet_stats.value, planet_stats.xp, planet_stats.sizerank, planet_stats.scorerank, planet_stats.valuerank, planet_stats.xprank, planet_stats.size_gain, planet_stats.score_gain, planet_stats.value_gain, planet_stats.xp_gain, planet_stats.sizerank_gain, planet_stats.scorerank_gain, planet_stats.valuerank_gain, planet_stats.xprank_gain, planet_stats.size_gain_day, planet_stats.score_gain_day, planet_stats.value_gain_day, planet_stats.xp_gain_day, planet_stats.sizerank_gain_day, planet_stats.scorerank_gain_day, planet_stats.valuerank_gain_day, planet_stats.xprank_gain_day FROM planet_stats WHERE (planet_stats.tick = (SELECT max(planet_stats.tick) AS max FROM planet_stats))) ps NATURAL JOIN planets p) LEFT JOIN alliances ON ((alliances.id = p.alliance_id)));
235
236
237 --
238 -- Name: defense_missions; Type: TABLE; Schema: public; Owner: -; Tablespace: 
239 --
240
241 CREATE TABLE defense_missions (
242     call integer NOT NULL,
243     fleet integer NOT NULL,
244     announced boolean DEFAULT false NOT NULL,
245     pointed boolean DEFAULT false NOT NULL
246 );
247
248
249 --
250 -- Name: defense_requests; Type: TABLE; Schema: public; Owner: -; Tablespace: 
251 --
252
253 CREATE TABLE defense_requests (
254     id integer NOT NULL,
255     uid integer NOT NULL,
256     message text NOT NULL,
257     sent boolean DEFAULT false NOT NULL
258 );
259
260
261 --
262 -- Name: dumps; Type: TABLE; Schema: public; Owner: -; Tablespace: 
263 --
264
265 CREATE TABLE dumps (
266     tick integer NOT NULL,
267     type text NOT NULL,
268     dump text NOT NULL,
269     modified integer DEFAULT 0 NOT NULL
270 );
271
272
273 --
274 -- Name: fleet_scans; Type: TABLE; Schema: public; Owner: -; Tablespace: 
275 --
276
277 CREATE TABLE fleet_scans (
278     id integer NOT NULL,
279     scan integer NOT NULL
280 );
281
282
283 --
284 -- Name: fleet_ships; Type: TABLE; Schema: public; Owner: -; Tablespace: 
285 --
286
287 CREATE TABLE fleet_ships (
288     id integer NOT NULL,
289     ship text NOT NULL,
290     amount integer NOT NULL,
291     num integer NOT NULL
292 );
293
294
295 --
296 -- Name: fleets; Type: TABLE; Schema: public; Owner: -; Tablespace: 
297 --
298
299 CREATE TABLE fleets (
300     uid integer NOT NULL,
301     target integer,
302     mission text NOT NULL,
303     tick integer NOT NULL,
304     id integer NOT NULL,
305     eta integer,
306     back integer,
307     sender integer NOT NULL,
308     amount integer,
309     name text NOT NULL,
310     ingal boolean DEFAULT false NOT NULL
311 );
312
313
314 --
315 -- Name: forum_access; Type: TABLE; Schema: public; Owner: -; Tablespace: 
316 --
317
318 CREATE TABLE forum_access (
319     fbid integer NOT NULL,
320     gid integer NOT NULL,
321     post boolean DEFAULT false NOT NULL,
322     moderate boolean DEFAULT false NOT NULL
323 );
324
325
326 --
327 -- Name: forum_boards; Type: TABLE; Schema: public; Owner: -; Tablespace: 
328 --
329
330 CREATE TABLE forum_boards (
331     fbid integer NOT NULL,
332     fcid integer NOT NULL,
333     board text NOT NULL
334 );
335
336
337 --
338 -- Name: forum_categories; Type: TABLE; Schema: public; Owner: -; Tablespace: 
339 --
340
341 CREATE TABLE forum_categories (
342     fcid integer NOT NULL,
343     category text NOT NULL
344 );
345
346
347 --
348 -- Name: forum_posts; Type: TABLE; Schema: public; Owner: -; Tablespace: 
349 --
350
351 CREATE TABLE forum_posts (
352     fpid integer NOT NULL,
353     ftid integer NOT NULL,
354     message text NOT NULL,
355     "time" timestamp with time zone DEFAULT now() NOT NULL,
356     uid integer NOT NULL,
357     textsearch tsvector
358 );
359
360
361 --
362 -- Name: forum_thread_visits; Type: TABLE; Schema: public; Owner: -; Tablespace: 
363 --
364
365 CREATE TABLE forum_thread_visits (
366     uid integer NOT NULL,
367     ftid integer NOT NULL,
368     "time" timestamp with time zone DEFAULT now() NOT NULL
369 );
370
371
372 --
373 -- Name: forum_threads; Type: TABLE; Schema: public; Owner: -; Tablespace: 
374 --
375
376 CREATE TABLE forum_threads (
377     ftid integer NOT NULL,
378     fbid integer NOT NULL,
379     subject text NOT NULL,
380     sticky boolean DEFAULT false NOT NULL,
381     uid integer NOT NULL
382 );
383
384
385 --
386 -- Name: galaxies; Type: TABLE; Schema: public; Owner: -; Tablespace: 
387 --
388
389 CREATE TABLE galaxies (
390     x integer NOT NULL,
391     y integer NOT NULL,
392     tick integer NOT NULL,
393     size integer NOT NULL,
394     score integer NOT NULL,
395     value integer NOT NULL,
396     xp integer NOT NULL,
397     planets integer NOT NULL,
398     sizerank integer NOT NULL,
399     scorerank integer NOT NULL,
400     valuerank integer NOT NULL,
401     xprank integer NOT NULL,
402     size_gain integer NOT NULL,
403     score_gain integer NOT NULL,
404     value_gain integer NOT NULL,
405     xp_gain integer NOT NULL,
406     planets_gain integer NOT NULL,
407     sizerank_gain integer NOT NULL,
408     scorerank_gain integer NOT NULL,
409     valuerank_gain integer NOT NULL,
410     xprank_gain integer NOT NULL,
411     size_gain_day integer NOT NULL,
412     score_gain_day integer NOT NULL,
413     value_gain_day integer NOT NULL,
414     xp_gain_day integer NOT NULL,
415     planets_gain_day integer NOT NULL,
416     sizerank_gain_day integer NOT NULL,
417     scorerank_gain_day integer NOT NULL,
418     valuerank_gain_day integer NOT NULL,
419     xprank_gain_day integer NOT NULL
420 );
421
422
423 --
424 -- Name: graphs; Type: TABLE; Schema: public; Owner: -; Tablespace: 
425 --
426
427 CREATE TABLE graphs (
428     type text NOT NULL,
429     id integer NOT NULL,
430     last_modified timestamp with time zone DEFAULT now() NOT NULL,
431     tick integer NOT NULL,
432     img bytea NOT NULL
433 );
434
435
436 --
437 -- Name: groupmembers; Type: TABLE; Schema: public; Owner: -; Tablespace: 
438 --
439
440 CREATE TABLE groupmembers (
441     gid integer NOT NULL,
442     uid integer NOT NULL
443 );
444
445
446 --
447 -- Name: groups; Type: TABLE; Schema: public; Owner: -; Tablespace: 
448 --
449
450 CREATE TABLE groups (
451     gid integer NOT NULL,
452     groupname text NOT NULL,
453     flag character(1),
454     attack boolean DEFAULT false NOT NULL
455 );
456
457
458 --
459 -- Name: incomings; Type: TABLE; Schema: public; Owner: -; Tablespace: 
460 --
461
462 CREATE TABLE incomings (
463     call integer NOT NULL,
464     sender integer NOT NULL,
465     eta integer NOT NULL,
466     amount integer NOT NULL,
467     fleet text NOT NULL,
468     shiptype text DEFAULT '?'::text NOT NULL,
469     id integer NOT NULL
470 );
471
472
473 --
474 -- Name: misc; Type: TABLE; Schema: public; Owner: -; Tablespace: 
475 --
476
477 CREATE TABLE misc (
478     id text NOT NULL,
479     value text
480 );
481
482
483 --
484 -- Name: planet_data; Type: TABLE; Schema: public; Owner: -; Tablespace: 
485 --
486
487 CREATE TABLE planet_data (
488     id integer NOT NULL,
489     scan integer NOT NULL,
490     tick integer NOT NULL,
491     rid integer NOT NULL,
492     amount bigint NOT NULL
493 );
494
495
496 --
497 -- Name: planet_data_types; Type: TABLE; Schema: public; Owner: -; Tablespace: 
498 --
499
500 CREATE TABLE planet_data_types (
501     id integer NOT NULL,
502     category text NOT NULL,
503     name text NOT NULL
504 );
505
506
507 --
508 -- Name: scans; Type: TABLE; Schema: public; Owner: -; Tablespace: 
509 --
510
511 CREATE TABLE scans (
512     tick integer NOT NULL,
513     scan_id numeric(10,0) NOT NULL,
514     planet integer,
515     type text,
516     uid integer DEFAULT -1 NOT NULL,
517     groupscan boolean DEFAULT false NOT NULL,
518     parsed boolean DEFAULT false NOT NULL,
519     id integer NOT NULL
520 );
521
522
523 --
524 -- Name: planet_scans; Type: VIEW; Schema: public; Owner: -
525 --
526
527 CREATE OR REPLACE VIEW planet_scans AS
528     SELECT DISTINCT ON (s.planet) s.id, s.planet, s.tick, m.metal, c.crystal, e.eonium, mr.metal_roids, cr.crystal_roids, er.eonium_roids, h.hidden, fl.light, fm.medium, fh.heavy
529         FROM
530                 (scans s JOIN (SELECT planet_data.scan AS id, planet_data.amount AS metal_roids FROM planet_data WHERE (planet_data.rid = 1)) mr USING (id))
531                 JOIN (SELECT planet_data.scan AS id, planet_data.amount AS crystal_roids FROM planet_data WHERE (planet_data.rid = 2)) cr USING (id)
532                 JOIN (SELECT planet_data.scan AS id, planet_data.amount AS eonium_roids FROM planet_data WHERE (planet_data.rid = 3)) er USING (id)
533                 JOIN (SELECT planet_data.scan AS id, planet_data.amount AS metal FROM planet_data WHERE (planet_data.rid = 4)) m USING (id)
534                 JOIN (SELECT planet_data.scan AS id, planet_data.amount AS crystal FROM planet_data WHERE (planet_data.rid = 5)) c USING (id)
535                 JOIN (SELECT planet_data.scan AS id, planet_data.amount AS eonium FROM planet_data WHERE (planet_data.rid = 6)) e USING (id)
536                 JOIN (SELECT planet_data.scan AS id, planet_data.amount AS hidden FROM planet_data WHERE (planet_data.rid = 25)) h USING (id)
537                 LEFT OUTER JOIN (SELECT planet_data.scan AS id, planet_data.amount AS light FROM planet_data WHERE (planet_data.rid = 26)) fl USING (id)
538                 LEFT OUTER JOIN (SELECT planet_data.scan AS id, planet_data.amount AS medium FROM planet_data WHERE (planet_data.rid = 27)) fm USING (id)
539                 LEFT OUTER JOIN (SELECT planet_data.scan AS id, planet_data.amount AS heavy FROM planet_data WHERE (planet_data.rid = 28)) fh USING (id)
540         ORDER BY s.planet, s.tick DESC, s.id DESC;
541
542
543 --
544 -- Name: raid_access; Type: TABLE; Schema: public; Owner: -; Tablespace: 
545 --
546
547 CREATE TABLE raid_access (
548     raid integer NOT NULL,
549     gid integer NOT NULL
550 );
551
552
553 --
554 -- Name: raid_claims; Type: TABLE; Schema: public; Owner: -; Tablespace: 
555 --
556
557 CREATE TABLE raid_claims (
558     target integer NOT NULL,
559     uid integer NOT NULL,
560     wave integer NOT NULL,
561     joinable boolean DEFAULT false NOT NULL,
562     launched boolean DEFAULT false NOT NULL,
563     "timestamp" timestamp with time zone DEFAULT now() NOT NULL
564 );
565
566
567 --
568 -- Name: raid_targets; Type: TABLE; Schema: public; Owner: -; Tablespace: 
569 --
570
571 CREATE TABLE raid_targets (
572     id integer NOT NULL,
573     raid integer NOT NULL,
574     planet integer NOT NULL,
575     comment text,
576     modified timestamp with time zone DEFAULT now() NOT NULL
577 );
578
579
580 --
581 -- Name: raids; Type: TABLE; Schema: public; Owner: -; Tablespace: 
582 --
583
584 CREATE TABLE raids (
585     id integer NOT NULL,
586     tick integer NOT NULL,
587     open boolean DEFAULT false NOT NULL,
588     waves integer DEFAULT 3 NOT NULL,
589     message text NOT NULL,
590     removed boolean DEFAULT false NOT NULL,
591     released_coords boolean DEFAULT false NOT NULL
592 );
593
594
595 --
596 -- Name: ship_stats; Type: TABLE; Schema: public; Owner: -; Tablespace: 
597 --
598
599 CREATE TABLE ship_stats (
600     name text NOT NULL,
601     class text NOT NULL,
602     t1 text NOT NULL,
603     type text NOT NULL,
604     init integer NOT NULL,
605     armor integer NOT NULL,
606     damage integer NOT NULL,
607     metal integer NOT NULL,
608     crystal integer NOT NULL,
609     eonium integer NOT NULL,
610     race text NOT NULL,
611     guns integer DEFAULT 0 NOT NULL,
612     eres integer DEFAULT 0 NOT NULL,
613     t2 text,
614     t3 text
615 );
616
617
618 --
619 -- Name: smslist; Type: TABLE; Schema: public; Owner: -; Tablespace: 
620 --
621
622 CREATE TABLE smslist (
623     nick text NOT NULL,
624     sms text NOT NULL,
625     info text
626 );
627
628
629 --
630 -- Name: structure_scans; Type: VIEW; Schema: public; Owner: -
631 --
632
633 CREATE VIEW structure_scans AS
634     SELECT DISTINCT ON (s.planet) s.id, s.planet, s.tick, t.total, d.distorters, sc.seccents FROM (((scans s JOIN (SELECT planet_data.scan AS id, sum(planet_data.amount) AS total FROM planet_data WHERE ((planet_data.rid >= 14) AND (planet_data.rid <= 24)) GROUP BY planet_data.scan) t USING (id)) JOIN (SELECT planet_data.scan AS id, planet_data.amount AS distorters FROM planet_data WHERE (planet_data.rid = 18)) d USING (id)) JOIN (SELECT planet_data.scan AS id, planet_data.amount AS seccents FROM planet_data WHERE (planet_data.rid = 24)) sc USING (id)) ORDER BY s.planet, s.tick DESC, s.id DESC;
635
636
637 --
638 -- Name: users; Type: TABLE; Schema: public; Owner: -; Tablespace: 
639 --
640
641 CREATE TABLE users (
642     uid integer NOT NULL,
643     username text NOT NULL,
644     planet integer,
645     password text NOT NULL,
646     attack_points integer DEFAULT 0 NOT NULL,
647     defense_points integer DEFAULT 0 NOT NULL,
648     scan_points integer DEFAULT 0 NOT NULL,
649     humor_points integer DEFAULT 0 NOT NULL,
650     hostmask text,
651     sms text,
652     rank integer,
653     laston timestamp with time zone,
654     ftid integer,
655     css text,
656     last_forum_visit timestamp with time zone,
657     email text,
658     pnick text,
659     info text
660 );
661
662
663 --
664 -- Name: usersingroup; Type: VIEW; Schema: public; Owner: -
665 --
666
667 CREATE VIEW usersingroup AS
668     SELECT groups.gid, groups.groupname, users.uid, users.username FROM ((users NATURAL JOIN groupmembers) NATURAL JOIN groups);
669
670
671 --
672 -- Name: add_call(); Type: FUNCTION; Schema: public; Owner: -
673 --
674
675 CREATE FUNCTION add_call() RETURNS trigger
676     AS $_X$
677 if ($_TD->{event} eq 'INSERT'){
678         $rv = spi_exec_query("SELECT nextval('public.forum_threads_ftid_seq') AS id");
679         if ($rv->{processed} != 1){
680                 return 'SKIP';
681         }
682         $ftid = $rv->{rows}[0]->{id};
683         $query = spi_prepare('INSERT INTO forum_threads (fbid,ftid,subject,uid) VALUES(-3,$1,$2,-3)','int4','varchar');
684         $rv = spi_exec_prepared($query,$ftid,"$_TD->{new}{member}: $_TD->{new}{landing_tick}");
685         spi_freeplan($query);
686         if (rv->{status} != SPI_OK_INSERT){
687                 return 'SKIP';
688         }
689         $_TD->{new}{ftid} = $ftid;
690         return 'MODIFY';
691 }
692 return 'SKIP';
693 $_X$
694     LANGUAGE plperl;
695
696
697 --
698 -- Name: add_intel(integer, integer, integer, integer, integer, integer, integer, integer, integer, character varying, integer); Type: FUNCTION; Schema: public; Owner: -
699 --
700
701 CREATE FUNCTION add_intel(tick integer, eta integer, x1 integer, y1 integer, z1 integer, x2 integer, y2 integer, z2 integer, amount integer, mission character varying, uid integer) RETURNS boolean
702     AS $_$my ($tick, $eta, $x1, $y1, $z1, $x2, $y2, $z2, $amount, $mission, $uid) = @_;
703 $ingal = false;
704 $tick = -1 unless defined $tick;
705 if ($x1 == $x2 && $y1 == $y2) {
706 $ingal = true;
707 }
708 if ($tick < 0){
709   $rv = spi_exec_query("SELECT tick FROM planet_stats ORDER BY tick DESC LIMIT 1;");
710   $tick = $rv->{rows}[0]->{tick};
711 }
712 $rv = spi_exec_query("SELECT id,tick FROM planet_stats WHERE x = $x1 AND y = $y1 AND z = $z1 AND (tick = $tick OR tick = (SELECT max(tick) FROM planet_stats)) ORDER BY tick ASC;");
713 unless ($rv->{processed} >= 1){
714 return false;
715
716 $id1 = $rv->{rows}[0]->{id};
717 $rv = spi_exec_query("SELECT id,tick FROM planet_stats WHERE x = $x2 AND y = $y2 AND z = $z2 AND (tick = $tick OR tick = (SELECT max(tick) FROM planet_stats)) ORDER BY tick ASC;");
718 unless ($rv->{processed} >= 1){
719 return false;
720
721 $id2 = $rv->{rows}[0]->{id};
722 $tick += $eta;
723 spi_exec_query("INSERT INTO intel (target,sender,tick,eta,mission,uid,ingal, amount) VALUES ($id1, $id2, $tick,$eta, '$mission', $uid, $ingal, $amount)");
724 return true;$_$
725     LANGUAGE plperl;
726
727
728 --
729 -- Name: add_intel2(integer, integer, integer, integer, integer, integer, integer, integer, character varying, character varying); Type: FUNCTION; Schema: public; Owner: -
730 --
731
732 CREATE FUNCTION add_intel2(integer, integer, integer, integer, integer, integer, integer, integer, character varying, character varying) RETURNS boolean
733     AS $_$my ($tick, $x1, $y1, $z1, $x2, $y2, $z2, $amount, $mission, $user) = @_;
734 $ingal = false;
735 if ($x1 == $x2 && $y1 == $y2) {
736 $ingal = true;
737 }
738 if ($tick < 0){
739   $rv = spi_exec_query("SELECT tick FROM planet_stats ORDER BY tick DESC LIMIT 1;");
740   $tick = $rv->{rows}[0]->{tick};
741 }
742 $rv = spi_exec_query("SELECT id FROM planet_stats WHERE x = $x1 AND y = $y1 AND z = $z1 AND tick = $tick;");
743 unless ($rv->{processed} == 1){
744 return false;
745
746 $id1 = $rv->{rows}[0]->{id};
747 $rv = spi_exec_query("SELECT id FROM planet_stats WHERE x = $x2 AND y = $y2 AND z = $z2 AND tick = $tick;");
748 unless ($rv->{processed} == 1){
749 return false;
750
751 $id2 = $rv->{rows}[0]->{id};
752 spi_exec_query("INSERT INTO intel (target,sender,tick,mission,\"user\",ingal, amount) VALUES ($id1, $id2, $tick, '$mission', '$user', $ingal, $amount)");
753 return true;$_$
754     LANGUAGE plperl;
755
756
757 --
758 -- Name: add_intel2(integer, integer, integer, integer, integer, integer, integer, integer, integer, character varying, character varying); Type: FUNCTION; Schema: public; Owner: -
759 --
760
761 CREATE FUNCTION add_intel2(integer, integer, integer, integer, integer, integer, integer, integer, integer, character varying, character varying) RETURNS boolean
762     AS $_$my ($tick, $eta, $x1, $y1, $z1, $x2, $y2, $z2, $amount, $mission, $uid) = @_;
763 unless ($uid = /^(-?\d+)$/){
764         $rv = spi_exec_query("SELECT id FROM users WHERE username = '$uid';");
765         $uid = $rv->{rows}[0]->{id};
766 }
767 $ingal = false;
768 if ($x1 == $x2 && $y1 == $y2) {
769 $ingal = true;
770 }
771 if ($tick < 0){
772   $rv = spi_exec_query("SELECT tick FROM planet_stats ORDER BY tick DESC LIMIT 1;");
773   $tick = $rv->{rows}[0]->{tick};
774 }
775 $rv = spi_exec_query("SELECT id,tick FROM planet_stats WHERE x = $x1 AND y = $y1 AND z = $z1 AND (tick = $tick OR tick = (SELECT max(tick) FROM planet_stats)) ORDER BY tick ASC;");
776 unless ($rv->{processed} >= 1){
777 return false;
778
779 $id1 = $rv->{rows}[0]->{id};
780 $rv = spi_exec_query("SELECT id,tick FROM planet_stats WHERE x = $x2 AND y = $y2 AND z = $z2 AND (tick = $tick OR tick = (SELECT max(tick) FROM planet_stats)) ORDER BY tick ASC;");
781 unless ($rv->{processed} >= 1){
782 return false;
783
784 $id2 = $rv->{rows}[0]->{id};
785 $tick += $eta;
786 spi_exec_query("INSERT INTO intel (target,sender,tick,eta,mission,uid,ingal, amount) VALUES ($id1, $id2, $tick,$eta, '$mission', $uid, $ingal, $amount)");
787 return true;$_$
788     LANGUAGE plperl;
789
790
791 --
792 -- Name: add_intel4(integer, integer, integer, integer, integer, integer, integer, integer, integer, character varying, integer); Type: FUNCTION; Schema: public; Owner: -
793 --
794
795 CREATE FUNCTION add_intel4(tick integer, eta integer, x1 integer, y1 integer, z1 integer, x2 integer, y2 integer, z2 integer, amount integer, mission character varying, uid integer) RETURNS information_schema.cardinal_number
796     AS $_$my ($tick, $eta, $x1, $y1, $z1, $x2, $y2, $z2, $amount, $mission, $uid) = @_;
797 $ingal = false;
798 if ($x1 == $x2 && $y1 == $y2) {
799 $ingal = true;
800 }
801 if ($tick < 0){
802   $rv = spi_exec_query("SELECT tick FROM planet_stats ORDER BY tick DESC LIMIT 1;");
803   $tick = $rv->{rows}[0]->{tick};
804 }
805 $rv = spi_exec_query("SELECT id,tick FROM planet_stats WHERE x = $x1 AND y = $y1 AND z = $z1 AND (tick = $tick OR tick = (SELECT max(tick) FROM planet_stats)) ORDER BY tick ASC;");
806 unless ($rv->{processed} >= 1){
807 return false;
808
809 $id1 = $rv->{rows}[0]->{id};
810 $rv = spi_exec_query("SELECT id,tick FROM planet_stats WHERE x = $x2 AND y = $y2 AND z = $z2 AND (tick = $tick OR tick = (SELECT max(tick) FROM planet_stats)) ORDER BY tick ASC;");
811 unless ($rv->{processed} >= 1){
812 return false;
813
814 $id2 = $rv->{rows}[0]->{id};
815 $tick += $eta;
816 spi_exec_query("INSERT INTO intel (target,sender,tick,eta,mission,uid,ingal, amount) VALUES ($id1, $id2, $tick,$eta, '$mission', $uid, $ingal, $amount)");
817 return true;$_$
818     LANGUAGE plperl;
819
820
821 --
822 -- Name: add_user(); Type: FUNCTION; Schema: public; Owner: -
823 --
824
825 CREATE FUNCTION add_user() RETURNS trigger
826     AS $_X$
827 if ($_TD->{event} eq 'INSERT'){
828         $rv = spi_exec_query("SELECT nextval('public.forum_threads_ftid_seq') AS id");
829         if ($rv->{processed} != 1){
830                 return 'SKIP';
831         }
832         $ftid = $rv->{rows}[0]->{id};
833         $query = spi_prepare('INSERT INTO forum_threads (fbid,ftid,subject,uid) VALUES($1,$2,$3,-3)','int4','int4','varchar');
834         $rv = spi_exec_prepared($query,-1,$ftid,"$_TD->{new}{uid}: $_TD->{new}{username}");
835         spi_freeplan($query);
836         if (rv->{status} != SPI_OK_INSERT){
837                 return 'SKIP';
838         }
839         $_TD->{new}{ftid} = $ftid;
840         return 'MODIFY';
841 }
842 return 'SKIP';
843 $_X$
844     LANGUAGE plperl;
845
846
847 --
848 -- Name: calc_rank(integer); Type: FUNCTION; Schema: public; Owner: -
849 --
850
851 CREATE FUNCTION calc_rank(tick integer) RETURNS void
852     AS $_$my ($tick) = @_;
853 spi_exec_query("DELETE FROM rankings WHERE tick = $tick");
854 my %ranks = ();
855 my $rv = spi_exec_query("SELECT id, score FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY score DESC");
856 my $status = $rv->{status};
857 my $nrows = $rv->{processed};
858 my $id;
859 for ($row = 1; $row <= $nrows; ++$row ){
860         $id = $rv->{rows}[$row-1]->{id};
861         $ranks{$id}{'score'} = $row;
862 }
863
864 my $rv = spi_exec_query("SELECT id, value FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY value DESC");
865 my $status = $rv->{status};
866 my $nrows = $rv->{processed};
867 my $id;
868 for ($row = 1; $row <= $nrows; ++$row ){
869         $id = $rv->{rows}[$row-1]->{id};
870         $ranks{$id}{'value'} = $row;
871 }
872
873 my $rv = spi_exec_query("SELECT id, size FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY size DESC");
874 my $status = $rv->{status};
875 my $nrows = $rv->{processed};
876 my $id;
877 for ($row = 1; $row <= $nrows; ++$row ){
878         $id = $rv->{rows}[$row-1]->{id};
879         $ranks{$id}{'size'} = $row;
880 }
881
882 my $rv = spi_exec_query("SELECT id, (score-value) as xp FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY xp DESC");
883 my $status = $rv->{status};
884 my $nrows = $rv->{processed};
885 my $id;
886 for ($row = 1; $row <= $nrows; ++$row ){
887         $id = $rv->{rows}[$row-1]->{id};
888         $ranks{$id}{'xp'} = $row;
889 }
890 foreach $key (keys(%ranks)){
891         spi_exec_query("INSERT INTO rankings (id,tick,score,value,size,xp) VALUES($key,$tick,".$ranks{$key}{'score'}.",".$ranks{$key}{'value'}.",".$ranks{$key}{'size'}.",".$ranks{$key}{'xp'}.")");
892 }
893 $_$
894     LANGUAGE plperl;
895
896
897 --
898 -- Name: calc_rank3(integer); Type: FUNCTION; Schema: public; Owner: -
899 --
900
901 CREATE FUNCTION calc_rank3(tick integer) RETURNS information_schema.cardinal_number
902     AS $_$my ($tick) = @_;
903 #spi_exec_query("DELETE FROM rankings WHERE tick = $tick");
904 my %ranks = ();
905 my $rv = spi_exec_query("SELECT id, score FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY score DESC");
906 my $status = $rv->{status};
907 my $nrows = $rv->{processed};
908 my $id;
909 for ($row = 1; $row <= $nrows; ++$row ){
910         $id = $rv->{rows}[$row-1]->{id};
911         #$ranks{$id}{'score'} = $row;
912 }
913
914 my $rv = spi_exec_query("SELECT id, value FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY value DESC");
915 my $status = $rv->{status};
916 my $nrows = $rv->{processed};
917 my $id;
918 for ($row = 1; $row <= $nrows; ++$row ){
919         $id = $rv->{rows}[$row-1]->{id};
920         #$ranks{$id}{'value'} = $row;
921 }
922
923 my $rv = spi_exec_query("SELECT id, size FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY size DESC");
924 my $status = $rv->{status};
925 my $nrows = $rv->{processed};
926 my $id;
927 for ($row = 1; $row <= $nrows; ++$row ){
928         $id = $rv->{rows}[$row-1]->{id};
929         #$ranks{$id}{'size'} = $row;
930 }
931
932 my $rv = spi_exec_query("SELECT id, (score-value) as xp FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY xp DESC");
933 my $status = $rv->{status};
934 my $nrows = $rv->{processed};
935 my $id;
936 for ($row = 1; $row <= $nrows; ++$row ){
937         $id = $rv->{rows}[$row-1]->{id};
938         #$ranks{$id}{'xp'} = $row;
939 }
940 foreach $key (keys(%ranks)){
941         #spi_exec_query("INSERT INTO rankings (id,tick,score,value,size,xp) VALUES($key,$tick,".$ranks{$key}{'score'}.",".$ranks{$key}{'value'}.",".$ranks{$key}{'size'}.",".$ranks{$key}{'xp'}.")");
942 }
943 $_$
944     LANGUAGE plperl;
945
946
947 --
948 -- Name: calculate_rankings(integer); Type: FUNCTION; Schema: public; Owner: -
949 --
950
951 CREATE FUNCTION calculate_rankings(integer) RETURNS void
952     AS $_$my ($tick) = @_;
953 spi_exec_query("DELETE FROM rankings WHERE tick = $tick");
954 my $rv = spi_exec_query("SELECT id, score FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY score DESC");
955 my $status = $rv->{status};
956 my $nrows = $rv->{processed};
957 my $id;
958 for ($row = 1; $row <= $nrows; ++$row ){
959 $id = $rv->{rows}[$row-1]->{id};
960 spi_exec_query("INSERT INTO rankings (id,tick,score) VALUES($id,$tick,$row)");
961 }
962
963 my $rv = spi_exec_query("SELECT id, value FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY value DESC");
964 my $status = $rv->{status};
965 my $nrows = $rv->{processed};
966 my $id;
967 for ($row = 1; $row <= $nrows; ++$row ){
968 $id = $rv->{rows}[$row-1]->{id};
969 spi_exec_query("UPDATE rankings SET value = $row WHERE id = $id AND tick = $tick");
970 }
971
972 my $rv = spi_exec_query("SELECT id, size FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY size DESC");
973 my $status = $rv->{status};
974 my $nrows = $rv->{processed};
975 my $id;
976 for ($row = 1; $row <= $nrows; ++$row ){
977 $id = $rv->{rows}[$row-1]->{id};
978 spi_exec_query("UPDATE rankings SET size = $row WHERE id = $id AND tick = $tick");
979 }
980
981 my $rv = spi_exec_query("SELECT id, (score-value) as xp FROM planets NATURAL JOIN planet_stats WHERE tick = $tick ORDER BY xp DESC");
982 my $status = $rv->{status};
983 my $nrows = $rv->{processed};
984 my $id;
985 for ($row = 1; $row <= $nrows; ++$row ){
986 $id = $rv->{rows}[$row-1]->{id};
987 spi_exec_query("UPDATE rankings SET xp = $row WHERE id = $id AND tick = $tick");
988 }
989 $_$
990     LANGUAGE plperl;
991
992
993 --
994 -- Name: change_member(); Type: FUNCTION; Schema: public; Owner: -
995 --
996
997 CREATE FUNCTION change_member() RETURNS trigger
998     AS $_X$if ($_TD->{event} eq 'INSERT' && $_TD->{new}{gid} == 2){
999         $rv = spi_exec_query("SELECT * FROM users WHERE uid = $_TD->{new}{uid};");
1000         if ($rv->{rows}[0]->{planet}){
1001                 spi_exec_query("UPDATE planets SET alliance_id = 1 WHERE id = $rv->{rows}[0]->{planet};");
1002         }
1003 }
1004 if ($_TD->{event} eq 'DELETE' && $_TD->{old}{gid} == 2){
1005         $rv = spi_exec_query("SELECT * FROM users WHERE uid = $_TD->{old}{uid};");
1006         if ($rv->{rows}[0]->{planet}){
1007                 spi_exec_query("UPDATE planets SET alliance_id = NULL WHERE id = $rv->{rows}[0]{planet};");
1008         }
1009 }
1010 return;$_X$
1011     LANGUAGE plperl;
1012
1013
1014 --
1015 -- Name: coords(integer, integer, integer); Type: FUNCTION; Schema: public; Owner: -
1016 --
1017
1018 CREATE FUNCTION coords(x integer, y integer, z integer) RETURNS text
1019     AS $_$my ($x,$y,$z) = @_;
1020 return "$x:$y:$z";$_$
1021     LANGUAGE plperl IMMUTABLE;
1022
1023
1024 --
1025 -- Name: covop_alert(integer, integer, governments, integer); Type: FUNCTION; Schema: public; Owner: -
1026 --
1027
1028 CREATE FUNCTION covop_alert(secs integer, strucs integer, gov governments, population integer) RETURNS integer
1029     AS $_$
1030         SELECT (70*(1.0+LEAST(COALESCE($1::float/$2,$4),0.30)*2 +
1031                 (CASE $3 
1032                         WHEN 'Dic' THEN 0.20
1033                         WHEN 'Feu' THEN -0.20
1034                         WHEN 'Uni' THEN -0.10
1035                         ELSE 0
1036                 END) + $4/100.0))::integer;
1037 $_$
1038     LANGUAGE sql IMMUTABLE;
1039
1040
1041 --
1042 -- Name: find_alliance_id(character varying); Type: FUNCTION; Schema: public; Owner: -
1043 --
1044
1045 CREATE FUNCTION find_alliance_id(character varying) RETURNS integer
1046     AS $_$
1047 my ($name) = @_;
1048 my $query = spi_prepare('SELECT id FROM alliances WHERE name=$1','varchar');
1049 my $rv = spi_exec_prepared($query,$name);
1050 my $status = $rv->{status};
1051 my $nrows = $rv->{processed};
1052 my $id;
1053 if ($nrows == 1){
1054         $id = $rv->{rows}[0]->{id};
1055 }
1056 else {
1057         $rv = spi_exec_query("SELECT nextval('public.alliances_id_seq') AS id");
1058         if ($rv->{processed} != 1){
1059                 return;
1060         }
1061         $id = $rv->{rows}[0]->{id};
1062         my $query = spi_prepare('INSERT INTO alliances(id,name) VALUES($1,$2)','int4','varchar');
1063         $rv = spi_exec_prepared($query,$id,$name);
1064         spi_freeplan($query);
1065         if (rv->{status} != SPI_OK_INSERT){
1066                 return;
1067         }
1068 }
1069 return $id;
1070 $_$
1071     LANGUAGE plperl;
1072
1073
1074 --
1075 -- Name: findplanetid(character varying, character varying, character varying); Type: FUNCTION; Schema: public; Owner: -
1076 --
1077
1078 CREATE FUNCTION findplanetid(character varying, character varying, character varying) RETURNS integer
1079     AS $_$
1080 my ($ruler, $planet, $race) = @_;
1081 my $query = spi_prepare('SELECT id, race FROM planets WHERE ruler=$1 AND planet=$2','varchar','varchar');
1082 my $rv = spi_exec_prepared($query,$ruler,$planet);
1083 spi_freeplan($query);
1084 my $status = $rv->{status};
1085 my $nrows = $rv->{processed};
1086 my $id;
1087 if ($nrows == 1){
1088     $id = $rv->{rows}[0]->{id};
1089     unless ($race eq $rv->{rows}[0]->{race}){
1090         $query = spi_prepare('UPDATE planets SET race=$1 where id=$2','race','int4');
1091         spi_exec_prepared($query,$race,$id);
1092         spi_freeplan($query);
1093     }
1094 }else {
1095     $rv = spi_exec_query("SELECT nextval('public.forum_threads_ftid_seq') AS id");
1096     if ($rv->{processed} != 1){
1097         return;
1098     }
1099     $ftid = $rv->{rows}[0]->{id};
1100     $query = spi_prepare('INSERT INTO forum_threads (fbid,ftid,subject,uid) VALUES($1,$2,$3,-3)','int4','int4','varchar');
1101     $rv = spi_exec_prepared($query,-2,$ftid,"$ruler OF $planet");
1102     spi_freeplan($query);
1103     if (rv->{status} != SPI_OK_INSERT){
1104         return;
1105     }
1106     $rv = spi_exec_query("SELECT nextval('public.planets_id_seq') AS id");
1107     if ($rv->{processed} != 1){
1108         return;
1109     }
1110     $id = $rv->{rows}[0]->{id};
1111     $query = spi_prepare('INSERT INTO planets(id,ruler,planet,race,ftid) VALUES($1,$2,$3,$4,$5)','int4','varchar','varchar','race','int4
1112 ');
1113     $rv = spi_exec_prepared($query,$id,$ruler,$planet,$race,$ftid);
1114     spi_freeplan($query);
1115     if (rv->{status} != SPI_OK_INSERT){
1116         return;
1117     }
1118
1119 }
1120 return $id;
1121 $_$
1122     LANGUAGE plperl;
1123
1124
1125 --
1126 -- Name: groups(integer); Type: FUNCTION; Schema: public; Owner: -
1127 --
1128
1129 CREATE FUNCTION groups(uid integer) RETURNS SETOF integer
1130     AS $_$SELECT gid FROM groupmembers WHERE uid = $1 UNION SELECT -1$_$
1131     LANGUAGE sql STABLE;
1132
1133
1134 --
1135 -- Name: max_bank_hack(integer, integer, integer, integer, integer); Type: FUNCTION; Schema: public; Owner: -
1136 --
1137
1138 CREATE FUNCTION max_bank_hack(metal integer, crystal integer, eonium integer, tvalue integer, value integer) RETURNS integer
1139     AS $_$
1140 SELECT LEAST(2000.0*15*$4/$5,$1*0.10, 15*7500.0)::integer
1141     + LEAST(2000.0*15*$4/$5,$2*0.10, 15*7500.0)::integer
1142     + LEAST(2000.0*15*$4/$5,$3*0.10, 15*7500.0)::integer
1143 $_$
1144     LANGUAGE sql IMMUTABLE;
1145
1146
1147 --
1148 -- Name: old_claim(timestamp with time zone); Type: FUNCTION; Schema: public; Owner: -
1149 --
1150
1151 CREATE FUNCTION old_claim("timestamp" timestamp with time zone) RETURNS boolean
1152     AS $_$SELECT NOW() - '10 minutes'::INTERVAL > $1;$_$
1153     LANGUAGE sql IMMUTABLE;
1154
1155
1156 --
1157 -- Name: planetcoords(integer, integer); Type: FUNCTION; Schema: public; Owner: -
1158 --
1159
1160 CREATE FUNCTION planetcoords(id integer, tick integer, OUT x integer, OUT y integer, OUT z integer) RETURNS record
1161     AS $_$SELECT x,y,z FROM planet_stats WHERE id = $1 AND (tick >= $2  OR tick =( SELECT max(tick) FROM planet_stats))  ORDER BY tick ASC LIMIT 1$_$
1162     LANGUAGE sql STABLE;
1163
1164
1165 --
1166 -- Name: planetid(integer, integer, integer, integer); Type: FUNCTION; Schema: public; Owner: -
1167 --
1168
1169 CREATE FUNCTION planetid(x integer, y integer, z integer, tick integer) RETURNS integer
1170     AS $_$SELECT id FROM planet_stats WHERE x = $1 AND y = $2 AND z = $3 AND (tick >= $4  OR tick =( SELECT max(tick) FROM planet_stats)) ORDER BY tick ASC LIMIT 1$_$
1171     LANGUAGE sql STABLE;
1172
1173
1174 --
1175 -- Name: populate_ticks(); Type: FUNCTION; Schema: public; Owner: -
1176 --
1177
1178 CREATE FUNCTION populate_ticks() RETURNS void
1179     AS $_$my $rv = spi_exec_query("SELECT tick FROM planet_stats ORDER BY tick DESC LIMIT 1;");
1180 my $nrows = $rv->{processed};
1181 if ($nrows == 1){
1182 $tick = $rv->{rows}[0]->{tick};
1183 spi_exec_query("DELETE FROM ticks;");
1184 spi_exec_query("INSERT INTO ticks(tick) (SELECT generate_series(36, tick,tick/50) FROM (SELECT tick FROM planet_stats ORDER BY tick DESC LIMIT 1) as foo);");
1185 spi_exec_query("INSERT INTO ticks(tick) VALUES($tick)");
1186 }$_$
1187     LANGUAGE plperl;
1188
1189
1190 --
1191 -- Name: tick(); Type: FUNCTION; Schema: public; Owner: -
1192 --
1193
1194 CREATE FUNCTION tick() RETURNS integer
1195     AS $$SELECT value::integer FROM misc WHERE id = 'TICK'$$
1196     LANGUAGE sql STABLE;
1197
1198
1199 --
1200 -- Name: unclaim_target(); Type: FUNCTION; Schema: public; Owner: -
1201 --
1202
1203 CREATE FUNCTION unclaim_target() RETURNS trigger
1204     AS $_X$
1205 if ($_TD->{event} eq 'DELETE' && $_TD->{old}{launched} eq 't'){
1206         my $uid = $_TD->{old}{uid};
1207         my $query = spi_prepare(q{UPDATE users
1208                 SET attack_points = attack_points - 1
1209                 WHERE uid = $1},'int4');
1210         spi_exec_prepared($query,$uid);
1211         spi_freeplan($query);
1212 }
1213 return;
1214 $_X$
1215     LANGUAGE plperl;
1216
1217
1218 --
1219 -- Name: update_forum_post(); Type: FUNCTION; Schema: public; Owner: -
1220 --
1221
1222 CREATE FUNCTION update_forum_post() RETURNS trigger
1223     AS $$
1224 DECLARE
1225     rec RECORD;
1226 BEGIN
1227     SELECT setweight(to_tsvector(coalesce(ft.subject,'')), 'A')
1228             || setweight(to_tsvector(coalesce(u.username,'')), 'B') AS ts
1229         INTO STRICT rec
1230         FROM forum_threads ft, users u
1231         WHERE NEW.ftid = ft.ftid AND u.uid = NEW.uid;
1232     NEW.textsearch := rec.ts
1233         || setweight(to_tsvector(coalesce(NEW.message,'')), 'D');
1234     return NEW;
1235 END;
1236 $$
1237     LANGUAGE plpgsql;
1238
1239
1240 --
1241 -- Name: update_user_planet(); Type: FUNCTION; Schema: public; Owner: -
1242 --
1243
1244 CREATE FUNCTION update_user_planet() RETURNS trigger
1245     AS $_X$my $rv = spi_exec_query("SELECT * FROM groupmembers WHERE uid = $_TD->{new}{uid} AND gid = 2;");
1246 if ($rv->{processed} == 1){# && ($_TD->{old}{planet} != $_TD->{new}{planet})){
1247         if ($_TD->{old}{planet}){
1248                 spi_exec_query("UPDATE planets SET alliance_id = NULL WHERE id = $_TD->{old}{planet};");
1249         }
1250         if ($_TD->{new}{planet}){
1251                 spi_exec_query("UPDATE planets SET alliance_id = 1 WHERE id = $_TD->{new}{planet};");
1252         }
1253 }
1254 if ($_TD->{old}{planet}){
1255         spi_exec_query("UPDATE planets SET nick = NULL WHERE id = $_TD->{old}{planet};");
1256 }
1257 if ($_TD->{new}{planet}){
1258         spi_exec_query("UPDATE planets SET nick = '$_TD->{new}{username}' WHERE id = $_TD->{new}{planet};");
1259 }
1260 return;$_X$
1261     LANGUAGE plperl;
1262
1263
1264 --
1265 -- Name: updated_target(); Type: FUNCTION; Schema: public; Owner: -
1266 --
1267
1268 CREATE FUNCTION updated_target() RETURNS trigger
1269     AS $_X$my $query = spi_prepare('UPDATE raid_targets SET modified = NOW() WHERE id = $1','int4');
1270 my $target = $_TD->{new}{target};
1271 $target = $_TD->{old}{target} if ($_TD->{event} eq 'DELETE');
1272 spi_exec_prepared($query,$target);
1273 spi_freeplan($query);$_X$
1274     LANGUAGE plperl;
1275
1276
1277 --
1278 -- Name: concat(text); Type: AGGREGATE; Schema: public; Owner: -
1279 --
1280
1281 CREATE AGGREGATE concat(text) (
1282     SFUNC = textcat,
1283     STYPE = text,
1284     INITCOND = ''
1285 );
1286
1287
1288 --
1289 -- Name: alliances_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1290 --
1291
1292 CREATE SEQUENCE alliances_id_seq
1293     INCREMENT BY 1
1294     NO MAXVALUE
1295     NO MINVALUE
1296     CACHE 1;
1297
1298
1299 --
1300 -- Name: alliances_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1301 --
1302
1303 ALTER SEQUENCE alliances_id_seq OWNED BY alliances.id;
1304
1305
1306 --
1307 -- Name: calls_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1308 --
1309
1310 CREATE SEQUENCE calls_id_seq
1311     INCREMENT BY 1
1312     NO MAXVALUE
1313     NO MINVALUE
1314     CACHE 1;
1315
1316
1317 --
1318 -- Name: calls_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1319 --
1320
1321 ALTER SEQUENCE calls_id_seq OWNED BY calls.id;
1322
1323
1324 --
1325 -- Name: channel_flags_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1326 --
1327
1328 CREATE SEQUENCE channel_flags_id_seq
1329     INCREMENT BY 1
1330     NO MAXVALUE
1331     NO MINVALUE
1332     CACHE 1;
1333
1334
1335 --
1336 -- Name: channel_flags_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1337 --
1338
1339 ALTER SEQUENCE channel_flags_id_seq OWNED BY channel_flags.id;
1340
1341
1342 --
1343 -- Name: channels_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1344 --
1345
1346 CREATE SEQUENCE channels_id_seq
1347     INCREMENT BY 1
1348     NO MAXVALUE
1349     NO MINVALUE
1350     CACHE 1;
1351
1352
1353 --
1354 -- Name: channels_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1355 --
1356
1357 ALTER SEQUENCE channels_id_seq OWNED BY channels.id;
1358
1359
1360 --
1361 -- Name: defense_requests_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1362 --
1363
1364 CREATE SEQUENCE defense_requests_id_seq
1365     INCREMENT BY 1
1366     NO MAXVALUE
1367     NO MINVALUE
1368     CACHE 1;
1369
1370
1371 --
1372 -- Name: defense_requests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1373 --
1374
1375 ALTER SEQUENCE defense_requests_id_seq OWNED BY defense_requests.id;
1376
1377
1378 --
1379 -- Name: fleet_ships_num_seq; Type: SEQUENCE; Schema: public; Owner: -
1380 --
1381
1382 CREATE SEQUENCE fleet_ships_num_seq
1383     INCREMENT BY 1
1384     NO MAXVALUE
1385     NO MINVALUE
1386     CACHE 1;
1387
1388
1389 --
1390 -- Name: fleet_ships_num_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1391 --
1392
1393 ALTER SEQUENCE fleet_ships_num_seq OWNED BY fleet_ships.num;
1394
1395
1396 --
1397 -- Name: fleets_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1398 --
1399
1400 CREATE SEQUENCE fleets_id_seq
1401     INCREMENT BY 1
1402     NO MAXVALUE
1403     NO MINVALUE
1404     CACHE 1;
1405
1406
1407 --
1408 -- Name: fleets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1409 --
1410
1411 ALTER SEQUENCE fleets_id_seq OWNED BY fleets.id;
1412
1413
1414 --
1415 -- Name: forum_boards_fbid_seq; Type: SEQUENCE; Schema: public; Owner: -
1416 --
1417
1418 CREATE SEQUENCE forum_boards_fbid_seq
1419     INCREMENT BY 1
1420     NO MAXVALUE
1421     NO MINVALUE
1422     CACHE 1;
1423
1424
1425 --
1426 -- Name: forum_boards_fbid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1427 --
1428
1429 ALTER SEQUENCE forum_boards_fbid_seq OWNED BY forum_boards.fbid;
1430
1431
1432 --
1433 -- Name: forum_categories_fcid_seq; Type: SEQUENCE; Schema: public; Owner: -
1434 --
1435
1436 CREATE SEQUENCE forum_categories_fcid_seq
1437     INCREMENT BY 1
1438     NO MAXVALUE
1439     NO MINVALUE
1440     CACHE 1;
1441
1442
1443 --
1444 -- Name: forum_categories_fcid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1445 --
1446
1447 ALTER SEQUENCE forum_categories_fcid_seq OWNED BY forum_categories.fcid;
1448
1449
1450 --
1451 -- Name: forum_posts_fpid_seq; Type: SEQUENCE; Schema: public; Owner: -
1452 --
1453
1454 CREATE SEQUENCE forum_posts_fpid_seq
1455     INCREMENT BY 1
1456     NO MAXVALUE
1457     NO MINVALUE
1458     CACHE 1;
1459
1460
1461 --
1462 -- Name: forum_posts_fpid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1463 --
1464
1465 ALTER SEQUENCE forum_posts_fpid_seq OWNED BY forum_posts.fpid;
1466
1467
1468 --
1469 -- Name: forum_threads_ftid_seq; Type: SEQUENCE; Schema: public; Owner: -
1470 --
1471
1472 CREATE SEQUENCE forum_threads_ftid_seq
1473     INCREMENT BY 1
1474     NO MAXVALUE
1475     NO MINVALUE
1476     CACHE 1;
1477
1478
1479 --
1480 -- Name: forum_threads_ftid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1481 --
1482
1483 ALTER SEQUENCE forum_threads_ftid_seq OWNED BY forum_threads.ftid;
1484
1485
1486 --
1487 -- Name: groups_gid_seq; Type: SEQUENCE; Schema: public; Owner: -
1488 --
1489
1490 CREATE SEQUENCE groups_gid_seq
1491     INCREMENT BY 1
1492     NO MAXVALUE
1493     NO MINVALUE
1494     CACHE 1;
1495
1496
1497 --
1498 -- Name: groups_gid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1499 --
1500
1501 ALTER SEQUENCE groups_gid_seq OWNED BY groups.gid;
1502
1503
1504 --
1505 -- Name: incomings_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1506 --
1507
1508 CREATE SEQUENCE incomings_id_seq
1509     INCREMENT BY 1
1510     NO MAXVALUE
1511     NO MINVALUE
1512     CACHE 1;
1513
1514
1515 --
1516 -- Name: incomings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1517 --
1518
1519 ALTER SEQUENCE incomings_id_seq OWNED BY incomings.id;
1520
1521
1522 --
1523 -- Name: planet_data_types_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1524 --
1525
1526 CREATE SEQUENCE planet_data_types_id_seq
1527     INCREMENT BY 1
1528     NO MAXVALUE
1529     NO MINVALUE
1530     CACHE 1;
1531
1532
1533 --
1534 -- Name: planet_data_types_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1535 --
1536
1537 ALTER SEQUENCE planet_data_types_id_seq OWNED BY planet_data_types.id;
1538
1539
1540 --
1541 -- Name: planets_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1542 --
1543
1544 CREATE SEQUENCE planets_id_seq
1545     INCREMENT BY 1
1546     NO MAXVALUE
1547     NO MINVALUE
1548     CACHE 1;
1549
1550
1551 --
1552 -- Name: planets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1553 --
1554
1555 ALTER SEQUENCE planets_id_seq OWNED BY planets.id;
1556
1557
1558 --
1559 -- Name: raid_targets_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1560 --
1561
1562 CREATE SEQUENCE raid_targets_id_seq
1563     INCREMENT BY 1
1564     NO MAXVALUE
1565     NO MINVALUE
1566     CACHE 1;
1567
1568
1569 --
1570 -- Name: raid_targets_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1571 --
1572
1573 ALTER SEQUENCE raid_targets_id_seq OWNED BY raid_targets.id;
1574
1575
1576 --
1577 -- Name: raids_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1578 --
1579
1580 CREATE SEQUENCE raids_id_seq
1581     INCREMENT BY 1
1582     NO MAXVALUE
1583     NO MINVALUE
1584     CACHE 1;
1585
1586
1587 --
1588 -- Name: raids_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1589 --
1590
1591 ALTER SEQUENCE raids_id_seq OWNED BY raids.id;
1592
1593
1594 --
1595 -- Name: scans_id_seq; Type: SEQUENCE; Schema: public; Owner: -
1596 --
1597
1598 CREATE SEQUENCE scans_id_seq
1599     INCREMENT BY 1
1600     NO MAXVALUE
1601     NO MINVALUE
1602     CACHE 1;
1603
1604
1605 --
1606 -- Name: scans_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1607 --
1608
1609 ALTER SEQUENCE scans_id_seq OWNED BY scans.id;
1610
1611
1612 --
1613 -- Name: test; Type: SEQUENCE; Schema: public; Owner: -
1614 --
1615
1616 CREATE SEQUENCE test
1617     INCREMENT BY 1
1618     NO MAXVALUE
1619     NO MINVALUE
1620     CACHE 1;
1621
1622
1623 --
1624 -- Name: users_uid_seq; Type: SEQUENCE; Schema: public; Owner: -
1625 --
1626
1627 CREATE SEQUENCE users_uid_seq
1628     INCREMENT BY 1
1629     NO MAXVALUE
1630     NO MINVALUE
1631     CACHE 1;
1632
1633
1634 --
1635 -- Name: users_uid_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
1636 --
1637
1638 ALTER SEQUENCE users_uid_seq OWNED BY users.uid;
1639
1640
1641 --
1642 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1643 --
1644
1645 ALTER TABLE alliances ALTER COLUMN id SET DEFAULT nextval('alliances_id_seq'::regclass);
1646
1647
1648 --
1649 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1650 --
1651
1652 ALTER TABLE calls ALTER COLUMN id SET DEFAULT nextval('calls_id_seq'::regclass);
1653
1654
1655 --
1656 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1657 --
1658
1659 ALTER TABLE channel_flags ALTER COLUMN id SET DEFAULT nextval('channel_flags_id_seq'::regclass);
1660
1661
1662 --
1663 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1664 --
1665
1666 ALTER TABLE channels ALTER COLUMN id SET DEFAULT nextval('channels_id_seq'::regclass);
1667
1668
1669 --
1670 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1671 --
1672
1673 ALTER TABLE defense_requests ALTER COLUMN id SET DEFAULT nextval('defense_requests_id_seq'::regclass);
1674
1675
1676 --
1677 -- Name: num; Type: DEFAULT; Schema: public; Owner: -
1678 --
1679
1680 ALTER TABLE fleet_ships ALTER COLUMN num SET DEFAULT nextval('fleet_ships_num_seq'::regclass);
1681
1682
1683 --
1684 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1685 --
1686
1687 ALTER TABLE fleets ALTER COLUMN id SET DEFAULT nextval('fleets_id_seq'::regclass);
1688
1689
1690 --
1691 -- Name: fbid; Type: DEFAULT; Schema: public; Owner: -
1692 --
1693
1694 ALTER TABLE forum_boards ALTER COLUMN fbid SET DEFAULT nextval('forum_boards_fbid_seq'::regclass);
1695
1696
1697 --
1698 -- Name: fcid; Type: DEFAULT; Schema: public; Owner: -
1699 --
1700
1701 ALTER TABLE forum_categories ALTER COLUMN fcid SET DEFAULT nextval('forum_categories_fcid_seq'::regclass);
1702
1703
1704 --
1705 -- Name: fpid; Type: DEFAULT; Schema: public; Owner: -
1706 --
1707
1708 ALTER TABLE forum_posts ALTER COLUMN fpid SET DEFAULT nextval('forum_posts_fpid_seq'::regclass);
1709
1710
1711 --
1712 -- Name: ftid; Type: DEFAULT; Schema: public; Owner: -
1713 --
1714
1715 ALTER TABLE forum_threads ALTER COLUMN ftid SET DEFAULT nextval('forum_threads_ftid_seq'::regclass);
1716
1717
1718 --
1719 -- Name: gid; Type: DEFAULT; Schema: public; Owner: -
1720 --
1721
1722 ALTER TABLE groups ALTER COLUMN gid SET DEFAULT nextval('groups_gid_seq'::regclass);
1723
1724
1725 --
1726 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1727 --
1728
1729 ALTER TABLE incomings ALTER COLUMN id SET DEFAULT nextval('incomings_id_seq'::regclass);
1730
1731
1732 --
1733 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1734 --
1735
1736 ALTER TABLE planet_data_types ALTER COLUMN id SET DEFAULT nextval('planet_data_types_id_seq'::regclass);
1737
1738
1739 --
1740 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1741 --
1742
1743 ALTER TABLE planets ALTER COLUMN id SET DEFAULT nextval('planets_id_seq'::regclass);
1744
1745
1746 --
1747 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1748 --
1749
1750 ALTER TABLE raid_targets ALTER COLUMN id SET DEFAULT nextval('raid_targets_id_seq'::regclass);
1751
1752
1753 --
1754 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1755 --
1756
1757 ALTER TABLE raids ALTER COLUMN id SET DEFAULT nextval('raids_id_seq'::regclass);
1758
1759
1760 --
1761 -- Name: id; Type: DEFAULT; Schema: public; Owner: -
1762 --
1763
1764 ALTER TABLE scans ALTER COLUMN id SET DEFAULT nextval('scans_id_seq'::regclass);
1765
1766
1767 --
1768 -- Name: uid; Type: DEFAULT; Schema: public; Owner: -
1769 --
1770
1771 ALTER TABLE users ALTER COLUMN uid SET DEFAULT nextval('users_uid_seq'::regclass);
1772
1773
1774 --
1775 -- Name: accounts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1776 --
1777
1778 ALTER TABLE ONLY users
1779     ADD CONSTRAINT accounts_pkey PRIMARY KEY (uid);
1780
1781
1782 --
1783 -- Name: alliance_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1784 --
1785
1786 ALTER TABLE ONLY alliance_stats
1787     ADD CONSTRAINT alliance_stats_pkey PRIMARY KEY (id, tick);
1788
1789
1790 --
1791 -- Name: alliances_name_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1792 --
1793
1794 ALTER TABLE ONLY alliances
1795     ADD CONSTRAINT alliances_name_key UNIQUE (name);
1796
1797
1798 --
1799 -- Name: alliances_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1800 --
1801
1802 ALTER TABLE ONLY alliances
1803     ADD CONSTRAINT alliances_pkey PRIMARY KEY (id);
1804
1805
1806 --
1807 -- Name: calls_member_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1808 --
1809
1810 ALTER TABLE ONLY calls
1811     ADD CONSTRAINT calls_member_key UNIQUE (member, landing_tick);
1812
1813
1814 --
1815 -- Name: calls_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1816 --
1817
1818 ALTER TABLE ONLY calls
1819     ADD CONSTRAINT calls_pkey PRIMARY KEY (id);
1820
1821
1822 --
1823 -- Name: channel_flags_name_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1824 --
1825
1826 ALTER TABLE ONLY channel_flags
1827     ADD CONSTRAINT channel_flags_name_key UNIQUE (name);
1828
1829
1830 --
1831 -- Name: channel_flags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1832 --
1833
1834 ALTER TABLE ONLY channel_flags
1835     ADD CONSTRAINT channel_flags_pkey PRIMARY KEY (id);
1836
1837
1838 --
1839 -- Name: channel_group_flags_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1840 --
1841
1842 ALTER TABLE ONLY channel_group_flags
1843     ADD CONSTRAINT channel_group_flags_pkey PRIMARY KEY (channel, "group", flag);
1844
1845
1846 --
1847 -- Name: channels_name_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1848 --
1849
1850 ALTER TABLE ONLY channels
1851     ADD CONSTRAINT channels_name_key UNIQUE (name);
1852
1853
1854 --
1855 -- Name: channels_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1856 --
1857
1858 ALTER TABLE ONLY channels
1859     ADD CONSTRAINT channels_pkey PRIMARY KEY (id);
1860
1861
1862 --
1863 -- Name: covop_attacks_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1864 --
1865
1866 ALTER TABLE ONLY covop_attacks
1867     ADD CONSTRAINT covop_attacks_pkey PRIMARY KEY (id, tick, uid);
1868
1869
1870 --
1871 -- Name: defense_missions_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1872 --
1873
1874 ALTER TABLE ONLY defense_missions
1875     ADD CONSTRAINT defense_missions_pkey PRIMARY KEY (fleet);
1876
1877
1878 --
1879 -- Name: defense_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1880 --
1881
1882 ALTER TABLE ONLY defense_requests
1883     ADD CONSTRAINT defense_requests_pkey PRIMARY KEY (id);
1884
1885
1886 --
1887 -- Name: dumps_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1888 --
1889
1890 ALTER TABLE ONLY dumps
1891     ADD CONSTRAINT dumps_pkey PRIMARY KEY (tick, type, modified);
1892
1893
1894 --
1895 -- Name: fleet_scans_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1896 --
1897
1898 ALTER TABLE ONLY fleet_scans
1899     ADD CONSTRAINT fleet_scans_pkey PRIMARY KEY (id);
1900
1901
1902 --
1903 -- Name: fleet_ships_num_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1904 --
1905
1906 ALTER TABLE ONLY fleet_ships
1907     ADD CONSTRAINT fleet_ships_num_key UNIQUE (num);
1908
1909
1910 --
1911 -- Name: fleet_ships_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1912 --
1913
1914 ALTER TABLE ONLY fleet_ships
1915     ADD CONSTRAINT fleet_ships_pkey PRIMARY KEY (id, ship);
1916
1917
1918 --
1919 -- Name: fleets_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1920 --
1921
1922 ALTER TABLE ONLY fleets
1923     ADD CONSTRAINT fleets_pkey PRIMARY KEY (id);
1924
1925
1926 --
1927 -- Name: forum_access_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1928 --
1929
1930 ALTER TABLE ONLY forum_access
1931     ADD CONSTRAINT forum_access_pkey PRIMARY KEY (fbid, gid);
1932
1933
1934 --
1935 -- Name: forum_boards_fcid_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1936 --
1937
1938 ALTER TABLE ONLY forum_boards
1939     ADD CONSTRAINT forum_boards_fcid_key UNIQUE (fcid, board);
1940
1941
1942 --
1943 -- Name: forum_boards_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1944 --
1945
1946 ALTER TABLE ONLY forum_boards
1947     ADD CONSTRAINT forum_boards_pkey PRIMARY KEY (fbid);
1948
1949
1950 --
1951 -- Name: forum_categories_category_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1952 --
1953
1954 ALTER TABLE ONLY forum_categories
1955     ADD CONSTRAINT forum_categories_category_key UNIQUE (category);
1956
1957
1958 --
1959 -- Name: forum_categories_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1960 --
1961
1962 ALTER TABLE ONLY forum_categories
1963     ADD CONSTRAINT forum_categories_pkey PRIMARY KEY (fcid);
1964
1965
1966 --
1967 -- Name: forum_posts_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1968 --
1969
1970 ALTER TABLE ONLY forum_posts
1971     ADD CONSTRAINT forum_posts_pkey PRIMARY KEY (fpid);
1972
1973
1974 --
1975 -- Name: forum_thread_visits_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1976 --
1977
1978 ALTER TABLE ONLY forum_thread_visits
1979     ADD CONSTRAINT forum_thread_visits_pkey PRIMARY KEY (uid, ftid);
1980
1981
1982 --
1983 -- Name: forum_threads_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1984 --
1985
1986 ALTER TABLE ONLY forum_threads
1987     ADD CONSTRAINT forum_threads_pkey PRIMARY KEY (ftid);
1988
1989
1990 --
1991 -- Name: galaxies_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
1992 --
1993
1994 ALTER TABLE ONLY galaxies
1995     ADD CONSTRAINT galaxies_pkey PRIMARY KEY (x, y, tick);
1996
1997
1998 --
1999 -- Name: graphs_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2000 --
2001
2002 ALTER TABLE ONLY graphs
2003     ADD CONSTRAINT graphs_pkey PRIMARY KEY (type, id);
2004
2005
2006 --
2007 -- Name: groupmembers_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2008 --
2009
2010 ALTER TABLE ONLY groupmembers
2011     ADD CONSTRAINT groupmembers_pkey PRIMARY KEY (gid, uid);
2012
2013
2014 --
2015 -- Name: groups_groupname_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2016 --
2017
2018 ALTER TABLE ONLY groups
2019     ADD CONSTRAINT groups_groupname_key UNIQUE (groupname);
2020
2021
2022 --
2023 -- Name: groups_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2024 --
2025
2026 ALTER TABLE ONLY groups
2027     ADD CONSTRAINT groups_pkey PRIMARY KEY (gid);
2028
2029
2030 --
2031 -- Name: incomings_call_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2032 --
2033
2034 ALTER TABLE ONLY incomings
2035     ADD CONSTRAINT incomings_call_key UNIQUE (call, sender, fleet);
2036
2037
2038 --
2039 -- Name: incomings_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2040 --
2041
2042 ALTER TABLE ONLY incomings
2043     ADD CONSTRAINT incomings_pkey PRIMARY KEY (id);
2044
2045
2046 --
2047 -- Name: misc_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2048 --
2049
2050 ALTER TABLE ONLY misc
2051     ADD CONSTRAINT misc_pkey PRIMARY KEY (id);
2052
2053
2054 --
2055 -- Name: planet_data_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2056 --
2057
2058 ALTER TABLE ONLY planet_data
2059     ADD CONSTRAINT planet_data_pkey PRIMARY KEY (rid, scan);
2060
2061
2062 --
2063 -- Name: planet_data_types_category_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2064 --
2065
2066 ALTER TABLE ONLY planet_data_types
2067     ADD CONSTRAINT planet_data_types_category_key UNIQUE (category, name);
2068
2069
2070 --
2071 -- Name: planet_data_types_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2072 --
2073
2074 ALTER TABLE ONLY planet_data_types
2075     ADD CONSTRAINT planet_data_types_pkey PRIMARY KEY (id);
2076
2077
2078 --
2079 -- Name: planet_stats_id_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2080 --
2081
2082 ALTER TABLE ONLY planet_stats
2083     ADD CONSTRAINT planet_stats_id_key UNIQUE (id, tick);
2084
2085
2086 --
2087 -- Name: planet_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2088 --
2089
2090 ALTER TABLE ONLY planet_stats
2091     ADD CONSTRAINT planet_stats_pkey PRIMARY KEY (tick, x, y, z);
2092
2093
2094 --
2095 -- Name: planets_ftid_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2096 --
2097
2098 ALTER TABLE ONLY planets
2099     ADD CONSTRAINT planets_ftid_key UNIQUE (ftid);
2100
2101
2102 --
2103 -- Name: planets_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2104 --
2105
2106 ALTER TABLE ONLY planets
2107     ADD CONSTRAINT planets_pkey PRIMARY KEY (id);
2108
2109
2110 --
2111 -- Name: planets_ruler_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2112 --
2113
2114 ALTER TABLE ONLY planets
2115     ADD CONSTRAINT planets_ruler_key UNIQUE (ruler, planet);
2116
2117
2118 --
2119 -- Name: raid_access_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2120 --
2121
2122 ALTER TABLE ONLY raid_access
2123     ADD CONSTRAINT raid_access_pkey PRIMARY KEY (raid, gid);
2124
2125
2126 --
2127 -- Name: raid_claims_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2128 --
2129
2130 ALTER TABLE ONLY raid_claims
2131     ADD CONSTRAINT raid_claims_pkey PRIMARY KEY (target, uid, wave);
2132
2133
2134 --
2135 -- Name: raid_targets_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2136 --
2137
2138 ALTER TABLE ONLY raid_targets
2139     ADD CONSTRAINT raid_targets_pkey PRIMARY KEY (id);
2140
2141
2142 --
2143 -- Name: raid_targets_raid_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2144 --
2145
2146 ALTER TABLE ONLY raid_targets
2147     ADD CONSTRAINT raid_targets_raid_key UNIQUE (raid, planet);
2148
2149
2150 --
2151 -- Name: raids_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2152 --
2153
2154 ALTER TABLE ONLY raids
2155     ADD CONSTRAINT raids_pkey PRIMARY KEY (id);
2156
2157
2158 --
2159 -- Name: scans_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2160 --
2161
2162 ALTER TABLE ONLY scans
2163     ADD CONSTRAINT scans_pkey PRIMARY KEY (id);
2164
2165
2166 --
2167 -- Name: scans_scan_id_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2168 --
2169
2170 ALTER TABLE ONLY scans
2171     ADD CONSTRAINT scans_scan_id_key UNIQUE (scan_id, tick, groupscan);
2172
2173
2174 --
2175 -- Name: ship_stats_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2176 --
2177
2178 ALTER TABLE ONLY ship_stats
2179     ADD CONSTRAINT ship_stats_pkey PRIMARY KEY (name);
2180
2181
2182 --
2183 -- Name: smslist_pkey; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2184 --
2185
2186 ALTER TABLE ONLY smslist
2187     ADD CONSTRAINT smslist_pkey PRIMARY KEY (sms);
2188
2189
2190 --
2191 -- Name: users_planet_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2192 --
2193
2194 ALTER TABLE ONLY users
2195     ADD CONSTRAINT users_planet_key UNIQUE (planet);
2196
2197
2198 --
2199 -- Name: users_tfid_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: 
2200 --
2201
2202 ALTER TABLE ONLY users
2203     ADD CONSTRAINT users_tfid_key UNIQUE (ftid);
2204
2205
2206 --
2207 -- Name: fleets_ingal_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2208 --
2209
2210 CREATE INDEX fleets_ingal_index ON fleets USING btree (ingal);
2211
2212
2213 --
2214 -- Name: fleets_mission_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2215 --
2216
2217 CREATE INDEX fleets_mission_index ON fleets USING btree (mission);
2218
2219
2220 --
2221 -- Name: fleets_sender_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2222 --
2223
2224 CREATE INDEX fleets_sender_index ON fleets USING btree (sender);
2225
2226
2227 --
2228 -- Name: fleets_target_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2229 --
2230
2231 CREATE INDEX fleets_target_index ON fleets USING btree (target);
2232
2233
2234 --
2235 -- Name: fleets_tick_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2236 --
2237
2238 CREATE INDEX fleets_tick_index ON fleets USING btree (tick);
2239
2240
2241 --
2242 -- Name: forum_access_gid_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2243 --
2244
2245 CREATE INDEX forum_access_gid_index ON forum_access USING btree (gid);
2246
2247
2248 --
2249 -- Name: forum_posts_ftid_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2250 --
2251
2252 CREATE INDEX forum_posts_ftid_index ON forum_posts USING btree (ftid);
2253
2254
2255 --
2256 -- Name: forum_posts_textsearch_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2257 --
2258
2259 CREATE INDEX forum_posts_textsearch_index ON forum_posts USING gin (textsearch);
2260
2261
2262 --
2263 -- Name: forum_posts_time_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2264 --
2265
2266 CREATE INDEX forum_posts_time_index ON forum_posts USING btree ("time");
2267
2268
2269 --
2270 -- Name: groupmembers_uid_key; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2271 --
2272
2273 CREATE INDEX groupmembers_uid_key ON groupmembers USING btree (uid);
2274
2275
2276 --
2277 -- Name: planet_data_id_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2278 --
2279
2280 CREATE INDEX planet_data_id_index ON planet_data USING btree (id);
2281
2282
2283 --
2284 -- Name: planet_stats_score_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2285 --
2286
2287 CREATE INDEX planet_stats_score_index ON planet_stats USING btree (tick, score);
2288
2289
2290 --
2291 -- Name: planet_stats_scorerank_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2292 --
2293
2294 CREATE INDEX planet_stats_scorerank_index ON planet_stats USING btree (tick, scorerank);
2295
2296
2297 --
2298 -- Name: planet_stats_size_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2299 --
2300
2301 CREATE INDEX planet_stats_size_index ON planet_stats USING btree (tick, size);
2302
2303
2304 --
2305 -- Name: planet_stats_sizerank_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2306 --
2307
2308 CREATE INDEX planet_stats_sizerank_index ON planet_stats USING btree (tick, sizerank);
2309
2310
2311 --
2312 -- Name: planet_stats_value_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2313 --
2314
2315 CREATE INDEX planet_stats_value_index ON planet_stats USING btree (tick, value);
2316
2317
2318 --
2319 -- Name: planet_stats_valuerank_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2320 --
2321
2322 CREATE INDEX planet_stats_valuerank_index ON planet_stats USING btree (tick, valuerank);
2323
2324
2325 --
2326 -- Name: planet_stats_xprank_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2327 --
2328
2329 CREATE INDEX planet_stats_xprank_index ON planet_stats USING btree (tick, xprank);
2330
2331
2332 --
2333 -- Name: planets_alliance_id_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2334 --
2335
2336 CREATE INDEX planets_alliance_id_index ON planets USING btree (alliance_id);
2337
2338
2339 --
2340 -- Name: planets_nick_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2341 --
2342
2343 CREATE INDEX planets_nick_index ON planets USING btree (nick);
2344
2345
2346 --
2347 -- Name: raid_targets_modified_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2348 --
2349
2350 CREATE INDEX raid_targets_modified_index ON raid_targets USING btree (modified);
2351
2352
2353 --
2354 -- Name: scans_parsed_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2355 --
2356
2357 CREATE INDEX scans_parsed_index ON scans USING btree (parsed);
2358
2359
2360 --
2361 -- Name: smslist_nick_key; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2362 --
2363
2364 CREATE UNIQUE INDEX smslist_nick_key ON smslist USING btree (lower(nick));
2365
2366
2367 --
2368 -- Name: users_hostmask_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2369 --
2370
2371 CREATE UNIQUE INDEX users_hostmask_index ON users USING btree (lower(hostmask));
2372
2373
2374 --
2375 -- Name: users_pnick_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2376 --
2377
2378 CREATE UNIQUE INDEX users_pnick_index ON users USING btree (lower(pnick));
2379
2380
2381 --
2382 -- Name: users_username_index; Type: INDEX; Schema: public; Owner: -; Tablespace: 
2383 --
2384
2385 CREATE UNIQUE INDEX users_username_index ON users USING btree (lower(username));
2386
2387
2388 --
2389 -- Name: add_call; Type: TRIGGER; Schema: public; Owner: -
2390 --
2391
2392 CREATE TRIGGER add_call
2393     BEFORE INSERT ON calls
2394     FOR EACH ROW
2395     EXECUTE PROCEDURE add_call();
2396
2397
2398 --
2399 -- Name: add_remove_member; Type: TRIGGER; Schema: public; Owner: -
2400 --
2401
2402 CREATE TRIGGER add_remove_member
2403     AFTER INSERT OR DELETE ON groupmembers
2404     FOR EACH ROW
2405     EXECUTE PROCEDURE change_member();
2406
2407
2408 --
2409 -- Name: add_user; Type: TRIGGER; Schema: public; Owner: -
2410 --
2411
2412 CREATE TRIGGER add_user
2413     BEFORE INSERT ON users
2414     FOR EACH ROW
2415     EXECUTE PROCEDURE add_user();
2416
2417
2418 --
2419 -- Name: unclaim_target; Type: TRIGGER; Schema: public; Owner: -
2420 --
2421
2422 CREATE TRIGGER unclaim_target
2423     AFTER DELETE ON raid_claims
2424     FOR EACH ROW
2425     EXECUTE PROCEDURE unclaim_target();
2426
2427
2428 --
2429 -- Name: update_forum_post; Type: TRIGGER; Schema: public; Owner: -
2430 --
2431
2432 CREATE TRIGGER update_forum_post
2433     BEFORE INSERT OR UPDATE ON forum_posts
2434     FOR EACH ROW
2435     EXECUTE PROCEDURE update_forum_post();
2436
2437
2438 --
2439 -- Name: update_planet; Type: TRIGGER; Schema: public; Owner: -
2440 --
2441
2442 CREATE TRIGGER update_planet
2443     AFTER UPDATE ON users
2444     FOR EACH ROW
2445     EXECUTE PROCEDURE update_user_planet();
2446
2447
2448 --
2449 -- Name: update_target; Type: TRIGGER; Schema: public; Owner: -
2450 --
2451
2452 CREATE TRIGGER update_target
2453     AFTER INSERT OR DELETE OR UPDATE ON raid_claims
2454     FOR EACH ROW
2455     EXECUTE PROCEDURE updated_target();
2456
2457
2458 --
2459 -- Name: alliance_stats_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2460 --
2461
2462 ALTER TABLE ONLY alliance_stats
2463     ADD CONSTRAINT alliance_stats_id_fkey FOREIGN KEY (id) REFERENCES alliances(id);
2464
2465
2466 --
2467 -- Name: calls_dc_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2468 --
2469
2470 ALTER TABLE ONLY calls
2471     ADD CONSTRAINT calls_dc_fkey FOREIGN KEY (dc) REFERENCES users(uid) ON UPDATE SET NULL ON DELETE SET NULL;
2472
2473
2474 --
2475 -- Name: calls_ftid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2476 --
2477
2478 ALTER TABLE ONLY calls
2479     ADD CONSTRAINT calls_ftid_fkey FOREIGN KEY (ftid) REFERENCES forum_threads(ftid);
2480
2481
2482 --
2483 -- Name: calls_member_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2484 --
2485
2486 ALTER TABLE ONLY calls
2487     ADD CONSTRAINT calls_member_fkey FOREIGN KEY (member) REFERENCES users(uid) ON UPDATE CASCADE ON DELETE CASCADE;
2488
2489
2490 --
2491 -- Name: channel_group_flags_channel_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2492 --
2493
2494 ALTER TABLE ONLY channel_group_flags
2495     ADD CONSTRAINT channel_group_flags_channel_fkey FOREIGN KEY (channel) REFERENCES channels(id) ON UPDATE CASCADE ON DELETE CASCADE;
2496
2497
2498 --
2499 -- Name: channel_group_flags_flag_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2500 --
2501
2502 ALTER TABLE ONLY channel_group_flags
2503     ADD CONSTRAINT channel_group_flags_flag_fkey FOREIGN KEY (flag) REFERENCES channel_flags(id) ON UPDATE CASCADE ON DELETE CASCADE;
2504
2505
2506 --
2507 -- Name: channel_group_flags_group_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2508 --
2509
2510 ALTER TABLE ONLY channel_group_flags
2511     ADD CONSTRAINT channel_group_flags_group_fkey FOREIGN KEY ("group") REFERENCES groups(gid) ON UPDATE CASCADE ON DELETE CASCADE;
2512
2513
2514 --
2515 -- Name: covop_attacks_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2516 --
2517
2518 ALTER TABLE ONLY covop_attacks
2519     ADD CONSTRAINT covop_attacks_id_fkey FOREIGN KEY (id) REFERENCES planets(id);
2520
2521
2522 --
2523 -- Name: covop_attacks_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2524 --
2525
2526 ALTER TABLE ONLY covop_attacks
2527     ADD CONSTRAINT covop_attacks_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid);
2528
2529
2530 --
2531 -- Name: defense_missions_call_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2532 --
2533
2534 ALTER TABLE ONLY defense_missions
2535     ADD CONSTRAINT defense_missions_call_fkey FOREIGN KEY (call) REFERENCES calls(id) ON UPDATE CASCADE ON DELETE CASCADE;
2536
2537
2538 --
2539 -- Name: defense_missions_fleet_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2540 --
2541
2542 ALTER TABLE ONLY defense_missions
2543     ADD CONSTRAINT defense_missions_fleet_fkey FOREIGN KEY (fleet) REFERENCES fleets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2544
2545
2546 --
2547 -- Name: defense_requests_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2548 --
2549
2550 ALTER TABLE ONLY defense_requests
2551     ADD CONSTRAINT defense_requests_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid) ON UPDATE CASCADE ON DELETE CASCADE;
2552
2553
2554 --
2555 -- Name: fleet_scans_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2556 --
2557
2558 ALTER TABLE ONLY fleet_scans
2559     ADD CONSTRAINT fleet_scans_id_fkey FOREIGN KEY (id) REFERENCES fleets(id) ON DELETE CASCADE;
2560
2561
2562 --
2563 -- Name: fleet_scans_scan_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2564 --
2565
2566 ALTER TABLE ONLY fleet_scans
2567     ADD CONSTRAINT fleet_scans_scan_fkey FOREIGN KEY (scan) REFERENCES scans(id);
2568
2569
2570 --
2571 -- Name: fleet_ships_fleet_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2572 --
2573
2574 ALTER TABLE ONLY fleet_ships
2575     ADD CONSTRAINT fleet_ships_fleet_fkey FOREIGN KEY (id) REFERENCES fleets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2576
2577
2578 --
2579 -- Name: fleet_ships_ship_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2580 --
2581
2582 ALTER TABLE ONLY fleet_ships
2583     ADD CONSTRAINT fleet_ships_ship_fkey FOREIGN KEY (ship) REFERENCES ship_stats(name);
2584
2585
2586 --
2587 -- Name: fleets_sender_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2588 --
2589
2590 ALTER TABLE ONLY fleets
2591     ADD CONSTRAINT fleets_sender_fkey FOREIGN KEY (sender) REFERENCES planets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2592
2593
2594 --
2595 -- Name: fleets_target_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2596 --
2597
2598 ALTER TABLE ONLY fleets
2599     ADD CONSTRAINT fleets_target_fkey FOREIGN KEY (target) REFERENCES planets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2600
2601
2602 --
2603 -- Name: fleets_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2604 --
2605
2606 ALTER TABLE ONLY fleets
2607     ADD CONSTRAINT fleets_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid) ON UPDATE CASCADE ON DELETE CASCADE;
2608
2609
2610 --
2611 -- Name: forum_access_fbid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2612 --
2613
2614 ALTER TABLE ONLY forum_access
2615     ADD CONSTRAINT forum_access_fbid_fkey FOREIGN KEY (fbid) REFERENCES forum_boards(fbid) ON UPDATE CASCADE ON DELETE CASCADE;
2616
2617
2618 --
2619 -- Name: forum_access_gid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2620 --
2621
2622 ALTER TABLE ONLY forum_access
2623     ADD CONSTRAINT forum_access_gid_fkey FOREIGN KEY (gid) REFERENCES groups(gid) ON UPDATE CASCADE ON DELETE CASCADE;
2624
2625
2626 --
2627 -- Name: forum_boards_fcid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2628 --
2629
2630 ALTER TABLE ONLY forum_boards
2631     ADD CONSTRAINT forum_boards_fcid_fkey FOREIGN KEY (fcid) REFERENCES forum_categories(fcid) ON UPDATE CASCADE ON DELETE CASCADE;
2632
2633
2634 --
2635 -- Name: forum_posts_ftid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2636 --
2637
2638 ALTER TABLE ONLY forum_posts
2639     ADD CONSTRAINT forum_posts_ftid_fkey FOREIGN KEY (ftid) REFERENCES forum_threads(ftid) ON UPDATE CASCADE ON DELETE CASCADE;
2640
2641
2642 --
2643 -- Name: forum_posts_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2644 --
2645
2646 ALTER TABLE ONLY forum_posts
2647     ADD CONSTRAINT forum_posts_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid) ON UPDATE CASCADE ON DELETE CASCADE;
2648
2649
2650 --
2651 -- Name: forum_thread_visits_ftid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2652 --
2653
2654 ALTER TABLE ONLY forum_thread_visits
2655     ADD CONSTRAINT forum_thread_visits_ftid_fkey FOREIGN KEY (ftid) REFERENCES forum_threads(ftid) ON UPDATE CASCADE ON DELETE CASCADE;
2656
2657
2658 --
2659 -- Name: forum_thread_visits_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2660 --
2661
2662 ALTER TABLE ONLY forum_thread_visits
2663     ADD CONSTRAINT forum_thread_visits_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid) ON UPDATE CASCADE ON DELETE CASCADE;
2664
2665
2666 --
2667 -- Name: forum_threads_fbid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2668 --
2669
2670 ALTER TABLE ONLY forum_threads
2671     ADD CONSTRAINT forum_threads_fbid_fkey FOREIGN KEY (fbid) REFERENCES forum_boards(fbid) ON UPDATE CASCADE ON DELETE CASCADE;
2672
2673
2674 --
2675 -- Name: forum_threads_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2676 --
2677
2678 ALTER TABLE ONLY forum_threads
2679     ADD CONSTRAINT forum_threads_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
2680
2681
2682 --
2683 -- Name: groupmembers_gid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2684 --
2685
2686 ALTER TABLE ONLY groupmembers
2687     ADD CONSTRAINT groupmembers_gid_fkey FOREIGN KEY (gid) REFERENCES groups(gid) ON UPDATE CASCADE ON DELETE CASCADE;
2688
2689
2690 --
2691 -- Name: groupmembers_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2692 --
2693
2694 ALTER TABLE ONLY groupmembers
2695     ADD CONSTRAINT groupmembers_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid) ON UPDATE CASCADE ON DELETE CASCADE;
2696
2697
2698 --
2699 -- Name: incomings_call_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2700 --
2701
2702 ALTER TABLE ONLY incomings
2703     ADD CONSTRAINT incomings_call_fkey FOREIGN KEY (call) REFERENCES calls(id) ON UPDATE CASCADE ON DELETE CASCADE;
2704
2705
2706 --
2707 -- Name: incomings_sender_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2708 --
2709
2710 ALTER TABLE ONLY incomings
2711     ADD CONSTRAINT incomings_sender_fkey FOREIGN KEY (sender) REFERENCES planets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2712
2713
2714 --
2715 -- Name: planet_data_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2716 --
2717
2718 ALTER TABLE ONLY planet_data
2719     ADD CONSTRAINT planet_data_id_fkey FOREIGN KEY (id) REFERENCES planets(id);
2720
2721
2722 --
2723 -- Name: planet_data_rid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2724 --
2725
2726 ALTER TABLE ONLY planet_data
2727     ADD CONSTRAINT planet_data_rid_fkey FOREIGN KEY (rid) REFERENCES planet_data_types(id);
2728
2729
2730 --
2731 -- Name: planet_data_scan_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2732 --
2733
2734 ALTER TABLE ONLY planet_data
2735     ADD CONSTRAINT planet_data_scan_fkey FOREIGN KEY (scan) REFERENCES scans(id);
2736
2737
2738 --
2739 -- Name: planet_stats_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2740 --
2741
2742 ALTER TABLE ONLY planet_stats
2743     ADD CONSTRAINT planet_stats_id_fkey FOREIGN KEY (id) REFERENCES planets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2744
2745
2746 --
2747 -- Name: planets_alliance_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2748 --
2749
2750 ALTER TABLE ONLY planets
2751     ADD CONSTRAINT planets_alliance_id_fkey FOREIGN KEY (alliance_id) REFERENCES alliances(id) ON UPDATE SET NULL ON DELETE SET NULL;
2752
2753
2754 --
2755 -- Name: planets_ftid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2756 --
2757
2758 ALTER TABLE ONLY planets
2759     ADD CONSTRAINT planets_ftid_fkey FOREIGN KEY (ftid) REFERENCES forum_threads(ftid) ON UPDATE RESTRICT ON DELETE RESTRICT;
2760
2761
2762 --
2763 -- Name: raid_access_gid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2764 --
2765
2766 ALTER TABLE ONLY raid_access
2767     ADD CONSTRAINT raid_access_gid_fkey FOREIGN KEY (gid) REFERENCES groups(gid) ON UPDATE CASCADE ON DELETE CASCADE;
2768
2769
2770 --
2771 -- Name: raid_access_raid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2772 --
2773
2774 ALTER TABLE ONLY raid_access
2775     ADD CONSTRAINT raid_access_raid_fkey FOREIGN KEY (raid) REFERENCES raids(id) ON UPDATE CASCADE ON DELETE CASCADE;
2776
2777
2778 --
2779 -- Name: raid_claims_target_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2780 --
2781
2782 ALTER TABLE ONLY raid_claims
2783     ADD CONSTRAINT raid_claims_target_fkey FOREIGN KEY (target) REFERENCES raid_targets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2784
2785
2786 --
2787 -- Name: raid_claims_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2788 --
2789
2790 ALTER TABLE ONLY raid_claims
2791     ADD CONSTRAINT raid_claims_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid) ON UPDATE CASCADE ON DELETE CASCADE;
2792
2793
2794 --
2795 -- Name: raid_targets_planet_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2796 --
2797
2798 ALTER TABLE ONLY raid_targets
2799     ADD CONSTRAINT raid_targets_planet_fkey FOREIGN KEY (planet) REFERENCES planets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2800
2801
2802 --
2803 -- Name: raid_targets_raid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2804 --
2805
2806 ALTER TABLE ONLY raid_targets
2807     ADD CONSTRAINT raid_targets_raid_fkey FOREIGN KEY (raid) REFERENCES raids(id) ON UPDATE CASCADE ON DELETE CASCADE;
2808
2809
2810 --
2811 -- Name: scans_planet_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2812 --
2813
2814 ALTER TABLE ONLY scans
2815     ADD CONSTRAINT scans_planet_fkey FOREIGN KEY (planet) REFERENCES planets(id) ON UPDATE CASCADE ON DELETE CASCADE;
2816
2817
2818 --
2819 -- Name: scans_uid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2820 --
2821
2822 ALTER TABLE ONLY scans
2823     ADD CONSTRAINT scans_uid_fkey FOREIGN KEY (uid) REFERENCES users(uid) ON UPDATE RESTRICT ON DELETE RESTRICT;
2824
2825
2826 --
2827 -- Name: users_planet_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2828 --
2829
2830 ALTER TABLE ONLY users
2831     ADD CONSTRAINT users_planet_fkey FOREIGN KEY (planet) REFERENCES planets(id) ON UPDATE SET NULL ON DELETE SET NULL;
2832
2833
2834 --
2835 -- Name: users_tfid_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
2836 --
2837
2838 ALTER TABLE ONLY users
2839     ADD CONSTRAINT users_tfid_fkey FOREIGN KEY (ftid) REFERENCES forum_threads(ftid) ON UPDATE SET NULL ON DELETE SET NULL;
2840
2841
2842 --
2843 -- Name: public; Type: ACL; Schema: -; Owner: -
2844 --
2845
2846 REVOKE ALL ON SCHEMA public FROM PUBLIC;
2847 REVOKE ALL ON SCHEMA public FROM postgres;
2848 GRANT ALL ON SCHEMA public TO postgres;
2849 GRANT ALL ON SCHEMA public TO PUBLIC;
2850
2851
2852 --
2853 -- PostgreSQL database dump complete
2854 --
2855