From 8cb5da28719b71cf27b13049dc0d0892652b9a1c Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Sun, 30 Mar 2008 17:42:37 +0200 Subject: [PATCH] Updated schema --- database/enums.sql | 52 ---------------------------------------------- database/ndawn.sql | 39 +++++++++++++++++++++------------- 2 files changed, 25 insertions(+), 66 deletions(-) delete mode 100644 database/enums.sql diff --git a/database/enums.sql b/database/enums.sql deleted file mode 100644 index 31223f7..0000000 --- a/database/enums.sql +++ /dev/null @@ -1,52 +0,0 @@ -CREATE TYPE ead_status AS ENUM ('','NAP','Friendly','Hostile'); - -DROP VIEW current_planet_stats_full; - -DROP VIEW current_planet_stats; - -ALTER TABLE planets ALTER COLUMN planet_status TYPE ead_status USING planet_status::ead_status; -ALTER TABLE planets ALTER COLUMN planet_status SET DEFAULT ''::ead_status; -UPDATE planets SET planet_status = '' WHERE planet_status IS NULL; -ALTER TABLE planets ALTER COLUMN planet_status SET NOT NULL; - -ALTER TABLE alliances ALTER COLUMN relationship TYPE ead_status USING relationship::ead_status; -ALTER TABLE alliances ALTER COLUMN relationship SET DEFAULT ''::ead_status; -UPDATE alliances SET relationship = '' WHERE relationship IS NULL; -ALTER TABLE alliances ALTER COLUMN relationship SET NOT NULL; - - -CREATE VIEW current_planet_stats AS - 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 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))); - - -CREATE VIEW current_planet_stats_full AS - 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 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))); - - -CREATE OR REPLACE FUNCTION find_alliance_id(character varying) RETURNS integer - AS $_$ -my ($name) = @_; -my $query = spi_prepare('SELECT id FROM alliances WHERE name=$1','varchar'); -my $rv = spi_exec_prepared($query,$name); -my $status = $rv->{status}; -my $nrows = $rv->{processed}; -my $id; -if ($nrows == 1){ - $id = $rv->{rows}[0]->{id}; -} -else { - $rv = spi_exec_query("SELECT nextval('public.alliances_id_seq') AS id"); - if ($rv->{processed} != 1){ - return; - } - $id = $rv->{rows}[0]->{id}; - my $query = spi_prepare('INSERT INTO alliances(id,name) VALUES($1,$2)','int4','varchar'); - $rv = spi_exec_prepared($query,$id,$name); - spi_freeplan($query); - if (rv->{status} != SPI_OK_INSERT){ - return; - } -} -return $id; -$_$ - LANGUAGE plperl; diff --git a/database/ndawn.sql b/database/ndawn.sql index cb9b5b6..2c19924 100644 --- a/database/ndawn.sql +++ b/database/ndawn.sql @@ -53,6 +53,18 @@ CREATE TABLE alliance_stats ( ); +-- +-- Name: ead_status; Type: TYPE; Schema: public; Owner: - +-- + +CREATE TYPE ead_status AS ENUM ( + '', + 'NAP', + 'Friendly', + 'Hostile' +); + + -- -- Name: alliances; Type: TABLE; Schema: public; Owner: -; Tablespace: -- @@ -60,7 +72,7 @@ CREATE TABLE alliance_stats ( CREATE TABLE alliances ( id integer NOT NULL, name character varying NOT NULL, - relationship text + relationship ead_status DEFAULT ''::ead_status NOT NULL ); @@ -160,7 +172,7 @@ CREATE TABLE planets ( planet character varying NOT NULL, race character varying, nick character varying, - planet_status text, + planet_status ead_status DEFAULT ''::ead_status NOT NULL, hit_us integer DEFAULT 0 NOT NULL, alliance_id integer, channel text, @@ -964,8 +976,8 @@ return "$x:$y:$z";$_$ -- CREATE FUNCTION find_alliance_id(character varying) RETURNS integer - AS $_$my ($name) = @_; -print "test"; + AS $_$ +my ($name) = @_; my $query = spi_prepare('SELECT id FROM alliances WHERE name=$1','varchar'); my $rv = spi_exec_prepared($query,$name); my $status = $rv->{status}; @@ -980,14 +992,15 @@ else { return; } $id = $rv->{rows}[0]->{id}; - my $query = spi_prepare('INSERT INTO alliances(id,name,relationship) VALUES($1,$2,NULL)','int4','varchar'); + my $query = spi_prepare('INSERT INTO alliances(id,name) VALUES($1,$2)','int4','varchar'); $rv = spi_exec_prepared($query,$id,$name); spi_freeplan($query); if (rv->{status} != SPI_OK_INSERT){ return; } } -return $id;$_$ +return $id; +$_$ LANGUAGE plperl; @@ -1222,6 +1235,7 @@ ALTER SEQUENCE alliances_id_seq OWNED BY alliances.id; -- CREATE SEQUENCE calls_id_seq + START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -1276,6 +1290,7 @@ ALTER SEQUENCE channels_id_seq OWNED BY channels.id; -- CREATE SEQUENCE defense_requests_id_seq + START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -1420,6 +1435,7 @@ ALTER SEQUENCE groups_gid_seq OWNED BY groups.gid; -- CREATE SEQUENCE incomings_id_seq + START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -1474,6 +1490,7 @@ ALTER SEQUENCE planets_id_seq OWNED BY planets.id; -- CREATE SEQUENCE raid_targets_id_seq + START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -1492,6 +1509,7 @@ ALTER SEQUENCE raid_targets_id_seq OWNED BY raid_targets.id; -- CREATE SEQUENCE raids_id_seq + START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -1510,6 +1528,7 @@ ALTER SEQUENCE raids_id_seq OWNED BY raids.id; -- CREATE SEQUENCE scans_id_seq + START WITH 1 INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -1997,14 +2016,6 @@ ALTER TABLE ONLY planet_stats ADD CONSTRAINT planet_stats_pkey PRIMARY KEY (tick, x, y, z); --- --- Name: planet_stats_x_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: --- - -ALTER TABLE ONLY planet_stats - ADD CONSTRAINT planet_stats_x_key UNIQUE (x, y, z, tick); - - -- -- Name: planets_ftid_key; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: -- -- 2.39.2