Created
July 26, 2018 14:08
-
-
Save ponceta/101c03969088e559897010738437f27f to your computer and use it in GitHub Desktop.
QWAT OD valve
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Table: qwat_od.valve | |
-- DROP TABLE qwat_od.valve; | |
CREATE TABLE qwat_od.valve | |
( | |
id integer NOT NULL DEFAULT nextval('qwat_od.valve_id_seq'::regclass), | |
fk_valve_type integer NOT NULL, | |
fk_valve_function integer NOT NULL, | |
fk_valve_actuation integer NOT NULL, | |
fk_pipe integer, | |
fk_handle_precision integer, | |
fk_handle_precisionalti integer, | |
fk_maintenance integer[], | |
diameter_nominal character varying(10), | |
closed boolean DEFAULT false, | |
networkseparation boolean DEFAULT false, | |
handle_altitude numeric(10,3), | |
handle_geometry geometry(PointZ,21781), | |
fk_district integer, | |
fk_pressurezone integer, | |
fk_distributor integer NOT NULL, | |
fk_precision integer NOT NULL, | |
fk_precisionalti integer, | |
fk_status integer NOT NULL, | |
fk_object_reference integer, | |
fk_folder integer, | |
year smallint, | |
year_end smallint, | |
altitude numeric(10,3) DEFAULT NULL::numeric, | |
orientation double precision, | |
fk_locationtype integer[], | |
identification character varying(50), | |
remark text, | |
fk_printmap integer[], | |
_geometry_alt1_used boolean, | |
_geometry_alt2_used boolean, | |
_pipe_node_type qwat_od.pipe_connection, | |
_pipe_orientation double precision DEFAULT 0, | |
_pipe_schema_visible boolean DEFAULT false, | |
_printmaps text, | |
geometry geometry(PointZ,21781) NOT NULL, | |
geometry_alt1 geometry(PointZ,21781), | |
geometry_alt2 geometry(PointZ,21781), | |
update_geometry_alt1 boolean, | |
update_geometry_alt2 boolean, | |
label_1_visible smallint DEFAULT 1, | |
label_1_x double precision, | |
label_1_y double precision, | |
label_1_rotation double precision, | |
label_1_text character varying(120), | |
label_2_visible smallint DEFAULT 1, | |
label_2_x double precision, | |
label_2_y double precision, | |
label_2_rotation double precision, | |
label_2_text character varying(120), | |
schema_force_visible boolean, | |
_schema_visible boolean, -- define if the element is visible on schematic view. Update by trigger as COALESCE(schema_force_visible, valve_function.schema_visible) | |
qwat_ext_ch_vd_sire_etat_exploitation smallint, | |
qwat_ext_ch_vd_sire_remarque text, | |
qwat_ext_ch_vd_sire_adesafecter smallint, | |
qwat_ext_ch_vd_eca_subvention boolean, -- Subvention ECA | |
pully_id_topobase integer, | |
CONSTRAINT valve_pkey PRIMARY KEY (id), | |
CONSTRAINT valve_fk_distributor FOREIGN KEY (fk_distributor) | |
REFERENCES qwat_od.distributor (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_district FOREIGN KEY (fk_district) | |
REFERENCES qwat_od.district (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_folder FOREIGN KEY (fk_folder) | |
REFERENCES qwat_od.folder (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_function FOREIGN KEY (fk_valve_function) | |
REFERENCES qwat_vl.valve_function (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_handle_precision FOREIGN KEY (fk_handle_precision) | |
REFERENCES qwat_vl."precision" (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_handle_precisionalti FOREIGN KEY (fk_handle_precisionalti) | |
REFERENCES qwat_vl.precisionalti (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_object_reference FOREIGN KEY (fk_object_reference) | |
REFERENCES qwat_vl.object_reference (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_pipe FOREIGN KEY (fk_pipe) | |
REFERENCES qwat_od.pipe (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_precision FOREIGN KEY (fk_precision) | |
REFERENCES qwat_vl."precision" (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_precisionalti FOREIGN KEY (fk_precisionalti) | |
REFERENCES qwat_vl.precisionalti (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_pressurezone FOREIGN KEY (fk_pressurezone) | |
REFERENCES qwat_od.pressurezone (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_status FOREIGN KEY (fk_status) | |
REFERENCES qwat_vl.status (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_type FOREIGN KEY (fk_valve_type) | |
REFERENCES qwat_vl.valve_type (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_fk_valve_actuation FOREIGN KEY (fk_valve_actuation) | |
REFERENCES qwat_vl.valve_actuation (id) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_label_1_visible FOREIGN KEY (label_1_visible) | |
REFERENCES qwat_vl.visible (vl_code_int) MATCH SIMPLE | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_label_2_visible FOREIGN KEY (label_2_visible) | |
REFERENCES qwat_vl.visible (vl_code_int) MATCH SIMPLE | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_schema_force_visible FOREIGN KEY (schema_force_visible) | |
REFERENCES qwat_vl.visible (vl_code) MATCH FULL | |
ON UPDATE NO ACTION ON DELETE NO ACTION, | |
CONSTRAINT valve_year_check CHECK (year IS NULL OR year > 1800 AND year < 2100), | |
CONSTRAINT valve_year_end_check CHECK (year_end IS NULL OR year_end > 1800 AND year_end < 2100) | |
) | |
WITH ( | |
OIDS=FALSE | |
); | |
ALTER TABLE qwat_od.valve | |
OWNER TO postgres; | |
GRANT ALL ON TABLE qwat_od.valve TO postgres; | |
GRANT SELECT, REFERENCES, TRIGGER ON TABLE qwat_od.valve TO qwat_viewer; | |
GRANT ALL ON TABLE qwat_od.valve TO qwat_user; | |
GRANT ALL ON TABLE qwat_od.valve TO qwat_manager; | |
COMMENT ON TABLE qwat_od.valve | |
IS 'Table for valve. Inherits from node.'; | |
COMMENT ON COLUMN qwat_od.valve._schema_visible IS 'define if the element is visible on schematic view. Update by trigger as COALESCE(schema_force_visible, valve_function.schema_visible)'; | |
COMMENT ON COLUMN qwat_od.valve.qwat_ext_ch_vd_eca_subvention IS 'Subvention ECA'; | |
-- Index: qwat_od.fki_valve_fk_distributor | |
-- DROP INDEX qwat_od.fki_valve_fk_distributor; | |
CREATE INDEX fki_valve_fk_distributor | |
ON qwat_od.valve | |
USING btree | |
(fk_distributor); | |
-- Index: qwat_od.fki_valve_fk_district | |
-- DROP INDEX qwat_od.fki_valve_fk_district; | |
CREATE INDEX fki_valve_fk_district | |
ON qwat_od.valve | |
USING btree | |
(fk_district); | |
-- Index: qwat_od.fki_valve_fk_folder | |
-- DROP INDEX qwat_od.fki_valve_fk_folder; | |
CREATE INDEX fki_valve_fk_folder | |
ON qwat_od.valve | |
USING btree | |
(fk_folder); | |
-- Index: qwat_od.fki_valve_fk_function | |
-- DROP INDEX qwat_od.fki_valve_fk_function; | |
CREATE INDEX fki_valve_fk_function | |
ON qwat_od.valve | |
USING btree | |
(fk_valve_function); | |
-- Index: qwat_od.fki_valve_fk_handle_precision | |
-- DROP INDEX qwat_od.fki_valve_fk_handle_precision; | |
CREATE INDEX fki_valve_fk_handle_precision | |
ON qwat_od.valve | |
USING btree | |
(fk_handle_precision); | |
-- Index: qwat_od.fki_valve_fk_handle_precisionalti | |
-- DROP INDEX qwat_od.fki_valve_fk_handle_precisionalti; | |
CREATE INDEX fki_valve_fk_handle_precisionalti | |
ON qwat_od.valve | |
USING btree | |
(fk_handle_precisionalti); | |
-- Index: qwat_od.fki_valve_fk_object_reference | |
-- DROP INDEX qwat_od.fki_valve_fk_object_reference; | |
CREATE INDEX fki_valve_fk_object_reference | |
ON qwat_od.valve | |
USING btree | |
(fk_object_reference); | |
-- Index: qwat_od.fki_valve_fk_pipe | |
-- DROP INDEX qwat_od.fki_valve_fk_pipe; | |
CREATE INDEX fki_valve_fk_pipe | |
ON qwat_od.valve | |
USING btree | |
(fk_pipe); | |
-- Index: qwat_od.fki_valve_fk_precision | |
-- DROP INDEX qwat_od.fki_valve_fk_precision; | |
CREATE INDEX fki_valve_fk_precision | |
ON qwat_od.valve | |
USING btree | |
(fk_precision); | |
-- Index: qwat_od.fki_valve_fk_precisionalti | |
-- DROP INDEX qwat_od.fki_valve_fk_precisionalti; | |
CREATE INDEX fki_valve_fk_precisionalti | |
ON qwat_od.valve | |
USING btree | |
(fk_precisionalti); | |
-- Index: qwat_od.fki_valve_fk_pressurezone | |
-- DROP INDEX qwat_od.fki_valve_fk_pressurezone; | |
CREATE INDEX fki_valve_fk_pressurezone | |
ON qwat_od.valve | |
USING btree | |
(fk_pressurezone); | |
-- Index: qwat_od.fki_valve_fk_status | |
-- DROP INDEX qwat_od.fki_valve_fk_status; | |
CREATE INDEX fki_valve_fk_status | |
ON qwat_od.valve | |
USING btree | |
(fk_status); | |
-- Index: qwat_od.fki_valve_fk_type | |
-- DROP INDEX qwat_od.fki_valve_fk_type; | |
CREATE INDEX fki_valve_fk_type | |
ON qwat_od.valve | |
USING btree | |
(fk_valve_type); | |
-- Index: qwat_od.fki_valve_fk_valve_actuation | |
-- DROP INDEX qwat_od.fki_valve_fk_valve_actuation; | |
CREATE INDEX fki_valve_fk_valve_actuation | |
ON qwat_od.valve | |
USING btree | |
(fk_valve_actuation); | |
-- Index: qwat_od.fki_valve_label_1_visible | |
-- DROP INDEX qwat_od.fki_valve_label_1_visible; | |
CREATE INDEX fki_valve_label_1_visible | |
ON qwat_od.valve | |
USING btree | |
(label_1_visible); | |
-- Index: qwat_od.fki_valve_label_2_visible | |
-- DROP INDEX qwat_od.fki_valve_label_2_visible; | |
CREATE INDEX fki_valve_label_2_visible | |
ON qwat_od.valve | |
USING btree | |
(label_2_visible); | |
-- Index: qwat_od.fki_valve_schema_force_visible | |
-- DROP INDEX qwat_od.fki_valve_schema_force_visible; | |
CREATE INDEX fki_valve_schema_force_visible | |
ON qwat_od.valve | |
USING btree | |
(schema_force_visible); | |
-- Index: qwat_od.valve_geoidx | |
-- DROP INDEX qwat_od.valve_geoidx; | |
CREATE INDEX valve_geoidx | |
ON qwat_od.valve | |
USING gist | |
(geometry); | |
-- Index: qwat_od.valve_geoidx_alt1 | |
-- DROP INDEX qwat_od.valve_geoidx_alt1; | |
CREATE INDEX valve_geoidx_alt1 | |
ON qwat_od.valve | |
USING gist | |
(geometry_alt1); | |
-- Index: qwat_od.valve_geoidx_alt2 | |
-- DROP INDEX qwat_od.valve_geoidx_alt2; | |
CREATE INDEX valve_geoidx_alt2 | |
ON qwat_od.valve | |
USING gist | |
(geometry_alt2); | |
-- Trigger: audit_trigger_row on qwat_od.valve | |
-- DROP TRIGGER audit_trigger_row ON qwat_od.valve; | |
CREATE TRIGGER audit_trigger_row | |
AFTER INSERT OR UPDATE OR DELETE | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_sys.if_modified_func('true'); | |
-- Trigger: audit_trigger_stm on qwat_od.valve | |
-- DROP TRIGGER audit_trigger_stm ON qwat_od.valve; | |
CREATE TRIGGER audit_trigger_stm | |
AFTER TRUNCATE | |
ON qwat_od.valve | |
FOR EACH STATEMENT | |
EXECUTE PROCEDURE qwat_sys.if_modified_func('true'); | |
-- Trigger: tr_valve_add_pipe_vertex_insert on qwat_od.valve | |
-- DROP TRIGGER tr_valve_add_pipe_vertex_insert ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_add_pipe_vertex_insert | |
AFTER INSERT | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_valve_add_pipe_vertex(); | |
COMMENT ON TRIGGER tr_valve_add_pipe_vertex_insert ON qwat_od.valve IS 'Trigger: updates auto fields after insert.'; | |
-- Trigger: tr_valve_add_pipe_vertex_update on qwat_od.valve | |
-- DROP TRIGGER tr_valve_add_pipe_vertex_update ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_add_pipe_vertex_update | |
AFTER UPDATE OF geometry | |
ON qwat_od.valve | |
FOR EACH ROW | |
WHEN ((st_equals(st_force2d(new.geometry), st_force2d(old.geometry)) IS FALSE)) | |
EXECUTE PROCEDURE qwat_od.ft_valve_add_pipe_vertex(); | |
COMMENT ON TRIGGER tr_valve_add_pipe_vertex_update ON qwat_od.valve IS 'Trigger: updates auto fields after geom update.'; | |
-- Trigger: tr_valve_altgeom_alt on qwat_od.valve | |
-- DROP TRIGGER tr_valve_altgeom_alt ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_altgeom_alt | |
BEFORE UPDATE OF geometry_alt1, geometry_alt2 | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_geometry_alternative_aux(); | |
COMMENT ON TRIGGER tr_valve_altgeom_alt ON qwat_od.valve IS 'Trigger: when updating, check if alternative geometries are different to fill the boolean fields.'; | |
-- Trigger: tr_valve_altgeom_insert on qwat_od.valve | |
-- DROP TRIGGER tr_valve_altgeom_insert ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_altgeom_insert | |
BEFORE INSERT | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_geometry_alternative_main(); | |
COMMENT ON TRIGGER tr_valve_altgeom_insert ON qwat_od.valve IS 'Trigger: handle alternative geometries on insert'; | |
-- Trigger: tr_valve_altgeom_update on qwat_od.valve | |
-- DROP TRIGGER tr_valve_altgeom_update ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_altgeom_update | |
BEFORE UPDATE OF geometry | |
ON qwat_od.valve | |
FOR EACH ROW | |
WHEN ((st_equals(st_force2d(new.geometry), st_force2d(old.geometry)) IS FALSE)) | |
EXECUTE PROCEDURE qwat_od.ft_geometry_alternative_main(); | |
COMMENT ON TRIGGER tr_valve_altgeom_update ON qwat_od.valve IS 'Trigger: handle alternative geometries on update'; | |
-- Trigger: tr_valve_infos_insert_trigger on qwat_od.valve | |
-- DROP TRIGGER tr_valve_infos_insert_trigger ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_infos_insert_trigger | |
BEFORE INSERT | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_valve_geom(); | |
COMMENT ON TRIGGER tr_valve_infos_insert_trigger ON qwat_od.valve IS 'Trigger: when inserting a valve, assign pipe.'; | |
-- Trigger: tr_valve_infos_update_trigger on qwat_od.valve | |
-- DROP TRIGGER tr_valve_infos_update_trigger ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_infos_update_trigger | |
BEFORE UPDATE | |
ON qwat_od.valve | |
FOR EACH ROW | |
WHEN ((NOT st_equals(old.geometry, new.geometry))) | |
EXECUTE PROCEDURE qwat_od.ft_valve_geom(); | |
COMMENT ON TRIGGER tr_valve_infos_update_trigger ON qwat_od.valve IS 'Trigger: when updating a valve, assign pipe.'; | |
-- Trigger: tr_valve_schema_visible_insert on qwat_od.valve | |
-- DROP TRIGGER tr_valve_schema_visible_insert ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_schema_visible_insert | |
BEFORE INSERT | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_valve_schema_visible(); | |
-- Trigger: tr_valve_schema_visible_update on qwat_od.valve | |
-- DROP TRIGGER tr_valve_schema_visible_update ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_schema_visible_update | |
BEFORE UPDATE OF fk_valve_function | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_valve_schema_visible(); | |
-- Trigger: tr_valve_update_trigger on qwat_od.valve | |
-- DROP TRIGGER tr_valve_update_trigger ON qwat_od.valve; | |
CREATE TRIGGER tr_valve_update_trigger | |
AFTER UPDATE | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_valve_update(); | |
COMMENT ON TRIGGER tr_valve_update_trigger ON qwat_od.valve IS 'Trigger: when updating a valve, reevaluate old and new pipes.'; | |
-- Trigger: valve_handle_altitude_insert_trigger on qwat_od.valve | |
-- DROP TRIGGER valve_handle_altitude_insert_trigger ON qwat_od.valve; | |
CREATE TRIGGER valve_handle_altitude_insert_trigger | |
BEFORE INSERT | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_valve_handle_altitude(); | |
COMMENT ON TRIGGER valve_handle_altitude_insert_trigger ON qwat_od.valve IS 'Trigger: when updating, check if altitude or Z value of geometry changed and synchronize them.'; | |
-- Trigger: valve_handle_altitude_update_trigger on qwat_od.valve | |
-- DROP TRIGGER valve_handle_altitude_update_trigger ON qwat_od.valve; | |
CREATE TRIGGER valve_handle_altitude_update_trigger | |
BEFORE UPDATE OF handle_altitude, handle_geometry | |
ON qwat_od.valve | |
FOR EACH ROW | |
WHEN (((new.handle_altitude <> old.handle_altitude) OR (st_z(new.handle_geometry) <> st_z(old.handle_geometry)))) | |
EXECUTE PROCEDURE qwat_od.ft_valve_handle_altitude(); | |
COMMENT ON TRIGGER valve_handle_altitude_update_trigger ON qwat_od.valve IS 'Trigger: when updating, check if altitude or Z value of geometry changed and synchronize them.'; | |
-- Trigger: valve_main_altitude_insert_trigger on qwat_od.valve | |
-- DROP TRIGGER valve_main_altitude_insert_trigger ON qwat_od.valve; | |
CREATE TRIGGER valve_main_altitude_insert_trigger | |
BEFORE INSERT | |
ON qwat_od.valve | |
FOR EACH ROW | |
EXECUTE PROCEDURE qwat_od.ft_valve_main_altitude(); | |
COMMENT ON TRIGGER valve_main_altitude_insert_trigger ON qwat_od.valve IS 'Trigger: when updating, check if altitude or Z value of geometry changed and synchronize them.'; | |
-- Trigger: valve_main_altitude_update_trigger on qwat_od.valve | |
-- DROP TRIGGER valve_main_altitude_update_trigger ON qwat_od.valve; | |
CREATE TRIGGER valve_main_altitude_update_trigger | |
BEFORE UPDATE OF altitude, geometry | |
ON qwat_od.valve | |
FOR EACH ROW | |
WHEN (((new.altitude <> old.altitude) OR (st_z(new.geometry) <> st_z(old.geometry)))) | |
EXECUTE PROCEDURE qwat_od.ft_valve_main_altitude(); | |
COMMENT ON TRIGGER valve_main_altitude_update_trigger ON qwat_od.valve IS 'Trigger: when updating, check if altitude or Z value of geometry changed and synchronize them.'; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment