]> git.sesse.net Git - ccbs/blobdiff - sql/ccbs.sql
Added a field in the bigscreen active groups allowing for versus play.
[ccbs] / sql / ccbs.sql
index e73464c8de07f5817d08bb392f08abaca1d0148c..839dd86879d6c9a2ff352caf2ea65d3b12a32879 100644 (file)
@@ -24,6 +24,14 @@ CREATE TABLE songs (
        UNIQUE ( title )
 );
 
+CREATE TABLE songshorttitles (
+       song INTEGER NOT NULL REFERENCES songs,
+       shorttitle VARCHAR NOT NULL,
+
+       PRIMARY KEY ( song, shorttitle ),
+       UNIQUE ( shorttitle )
+);
+
 CREATE TABLE machinesongs (
        song INTEGER NOT NULL REFERENCES songs,
        machine INTEGER NOT NULL REFERENCES machines,
@@ -47,6 +55,7 @@ CREATE TABLE songratings (
 
        PRIMARY KEY (song, machine, playmode, difficulty)
 );
+CREATE INDEX songratings_feetrating ON songratings ( feetrating );
 
 CREATE TABLE players (
        player SERIAL PRIMARY KEY,
@@ -161,21 +170,19 @@ CREATE TABLE randomsongsused (
 CREATE SCHEMA bigscreen;
 
 CREATE TABLE bigscreen.active_tournament (
-       tournament INTEGER NOT NULL REFERENCES tournaments
+       tournament INTEGER NOT NULL PRIMARY KEY REFERENCES tournaments
 );
+CREATE TABLE bigscreen.active_groups (
+       tournament INTEGER NOT NULL REFERENCES bigscreen.active_tournament,
+       round INTEGER NOT NULL,
+       parallel INTEGER NOT NULL,
+       num_machines INTEGER NOT NULL,
+       players_per_machine INTEGER NOT NULL CHECK ( players_per_machine IN (1, 2) ),
+       last_updated TIMESTAMP NOT NULL,
 
--- install PL/PgSQL
-CREATE FUNCTION plpgsql_call_handler() RETURNS opaque
-    AS '/usr/lib/postgresql/lib/plpgsql.so', 'plpgsql_call_handler'
-    LANGUAGE "C";
-CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql HANDLER plpgsql_call_handler;
-
--- NOTIFY active_tournament when anything has changed
-CREATE FUNCTION notify_active_tournament() RETURNS trigger
-AS '
-    DECLARE
-    BEGIN
-        NOTIFY bigscreen.active_tournament;
-    END;'
-LANGUAGE plpgsql;
-
+       PRIMARY KEY ( tournament, round, parallel ),
+       FOREIGN KEY ( tournament, round, parallel ) REFERENCES groups
+);
+CREATE TABLE bigscreen.active_screens (
+       id VARCHAR NOT NULL PRIMARY KEY
+);