--
-- Copyright (C) 2006 The Trustees of Princeton University
--
--- $Id: planetlab4.sql,v 1.52 2006/11/29 17:57:27 tmack Exp $
+-- $Id: planetlab4.sql,v 1.56 2006/12/20 14:06:40 tmack Exp $
--
--------------------------------------------------------------------------------
peer_id serial PRIMARY KEY, -- identifier
peername text NOT NULL, -- free text
peer_url text NOT NULL, -- the url of that peer's API
- -- oops, looks like we have a dependency loop here
- --person_id integer REFERENCES persons NOT NULL, -- the account we use for logging in
- auth_person_id integer NOT NULL, -- the account we use for logging in
-
+ cacert text, -- (SSL) Public certificate of peer API server
+ key text, -- (GPG) Public key used for authentication
+
deleted boolean NOT NULL DEFAULT false
) WITH OIDS;
fault_code integer NOT NULL DEFAULT 0, -- Did this event result in error
call_name text Not NULL, -- Call responsible for this event
call text NOT NULL, -- Call responsible for this event, including paramters
+ message text, -- High level description of this event
runtime float, -- Event run time
time timestamp without time zone NOT NULL DEFAULT CURRENT_TIMESTAMP -- Event timestamp
) WITH OIDS;
FROM persons
GROUP BY peer_id;
+CREATE VIEW peer_keys AS
+SELECT peer_id,
+array_accum(key_id) AS key_ids
+FROM keys
+GROUP BY peer_id;
+
CREATE VIEW peer_nodes AS
SELECT peer_id,
array_accum(node_id) AS node_ids
FROM nodes
GROUP BY peer_id;
+CREATE VIEW peer_slice_attribute_types AS
+SELECT peer_id,
+array_accum(attribute_type_id) AS attribute_type_ids
+FROM slice_attribute_types
+GROUP BY peer_id;
+
+CREATE VIEW peer_slice_attributes AS
+SELECT peer_id,
+array_accum(slice_attribute_id) AS slice_attribute_ids
+FROM slice_attribute
+GROUP BY peer_id;
+
CREATE VIEW peer_slices AS
SELECT peer_id,
array_accum(slice_id) AS slice_ids
CREATE VIEW view_peers AS
SELECT
peers.*,
-peer_sites.site_ids,
-peer_persons.person_ids,
-peer_nodes.node_ids,
-peer_slices.slice_ids
+COALESCE(peer_sites.site_ids, '{}') AS site_ids,
+COALESCE(peer_persons.person_ids, '{}') AS person_ids,
+COALESCE(peer_keys.key_ids, '{}') AS key_ids,
+COALESCE(peer_nodes.node_ids, '{}') AS node_ids,
+COALESCE(peer_slice_attribute_types.attribute_type_ids, '{}') AS attribute_type_ids,
+COALESCE(peer_slice_attributes.slice_attribute_ids, '{}') AS slice_attribute_ids,
+COALESCE(peer_slices.slice_ids, '{}') AS slice_ids
FROM peers
LEFT JOIN peer_sites USING (peer_id)
LEFT JOIN peer_persons USING (peer_id)
+LEFT JOIN peer_keys USING (peer_id)
LEFT JOIN peer_nodes USING (peer_id)
+LEFT JOIN peer_slice_attribute_types USING (peer_id)
+LEFT JOIN peer_slice_attributes USING (peer_id)
LEFT JOIN peer_slices USING (peer_id);
CREATE VIEW view_nodes AS