From: Tony Mack Date: Tue, 13 Nov 2007 23:13:28 +0000 (+0000) Subject: merge from trunk X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=9e6a9654e441a6dbc565807a8727f4fc1f13eef9;p=plcapi.git merge from trunk --- diff --git a/migrations/009-down-pcu-types.sql b/migrations/009-down-pcu-types.sql new file mode 100644 index 00000000..1dbe9d2e --- /dev/null +++ b/migrations/009-down-pcu-types.sql @@ -0,0 +1,13 @@ +-- +-- 009 revert +-- + +DROP VIEW view_pcu_types; + +DROP VIEW pcu_type_ports; + +DROP TABLE pcu_type_port; + +DROP TABLE pcu_types; + +UPDATE plc_db_version SET subversion = 7; diff --git a/migrations/009-up-pcu-types.sql b/migrations/009-up-pcu-types.sql new file mode 100644 index 00000000..c7dd7b61 --- /dev/null +++ b/migrations/009-up-pcu-types.sql @@ -0,0 +1,41 @@ +-- +-- Tony Mack - PlanetLab +-- +-- migration 009 +-- +-- purpose: provide a means for storing details about pcu models +-- +-- + +CREATE TABLE pcu_types ( + pcu_type_id serial PRIMARY KEY, + model text NOT NULL, -- PCU model name + name text -- Full PCU model name +) WITH OIDS; +CREATE INDEX pcu_types_model_idx ON pcu_types (model); + +CREATE TABLE pcu_protocol_type ( + pcu_protocol_type_id serial PRIMARY KEY, + pcu_type_id integer REFERENCES pcu_types NOT NULL, -- PCU type identifier + port integer NOT NULL, -- PCU port + protocol text NOT NULL, -- Protocol + supported boolean NOT NULL DEFAULT True -- Does PLC support +) WITH OIDS; +CREATE INDEX pcu_protocol_type_pcu_type_id ON pcu_protocol_type (pcu_type_id); + + +CREATE OR REPLACE VIEW pcu_protocol_types AS +SELECT pcu_type_id, +array_accum(pcu_protocol_type_id) as pcu_protocol_type_ids +FROM pcu_protocol_type +GROUP BY pcu_type_id; + +CREATE OR REPLACE VIEW view_pcu_types AS +SELECT +pcu_types.pcu_type_id, +pcu_types.model, +pcu_types.name, +COALESCE((SELECT pcu_protocol_type_ids FROM pcu_protocol_types WHERE pcu_protocol_types.pcu_type_id = pcu_types.pcu_type_id), '{}') AS pcu_protocol_type_ids +FROM pcu_types; + +UPDATE plc_db_version SET subversion = 9;