From 4b1b51bdf136b252a097fdc6c86c220b39cc56f4 Mon Sep 17 00:00:00 2001 From: SJiB Date: Thu, 7 Dec 2023 15:13:55 +0100 Subject: [PATCH 1/9] re_building_group_disposal missing fk_columns --- datamodel/changelogs/0001/03_tww_db_dss.sql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/datamodel/changelogs/0001/03_tww_db_dss.sql b/datamodel/changelogs/0001/03_tww_db_dss.sql index 4ea754ed8..feec53bdd 100644 --- a/datamodel/changelogs/0001/03_tww_db_dss.sql +++ b/datamodel/changelogs/0001/03_tww_db_dss.sql @@ -2979,6 +2979,10 @@ FOR EACH ROW EXECUTE PROCEDURE ------- ------------ Relationships and Value Tables ----------- ; +ALTER TABLE tww_od.re_building_group_disposal ADD COLUMN fk_building_group varchar(16); +ALTER TABLE tww_od.re_building_group_disposal ADD CONSTRAINT rel_building_group_disposal_building_group FOREIGN KEY (fk_building_group) REFERENCES tww_od.building_group(obj_id) ON UPDATE CASCADE ON DELETE cascade; +ALTER TABLE tww_od.re_building_group_disposal ADD COLUMN fk_disposal varchar(16); +ALTER TABLE tww_od.re_building_group_disposal ADD CONSTRAINT rel_building_group_disposal_disposal FOREIGN KEY (fk_disposal) REFERENCES tww_od.disposal(obj_id) ON UPDATE CASCADE ON DELETE cascade; ALTER TABLE tww_od.re_maintenance_event_wastewater_structure ADD COLUMN fk_wastewater_structure varchar(16); ALTER TABLE tww_od.re_maintenance_event_wastewater_structure ADD CONSTRAINT rel_maintenance_event_wastewater_structure_wastewater_structure FOREIGN KEY (fk_wastewater_structure) REFERENCES tww_od.wastewater_structure(obj_id) ON UPDATE CASCADE ON DELETE cascade; ALTER TABLE tww_od.re_maintenance_event_wastewater_structure ADD COLUMN fk_maintenance_event varchar(16); From fe2039295a0767ec58f3603c7d213a303477b02b Mon Sep 17 00:00:00 2001 From: SJiB Date: Mon, 11 Dec 2023 16:00:21 +0100 Subject: [PATCH 2/9] 20231211 changes master --- .../heritage_dss2015/vw_building.sql | 123 ++++++++++ .../vw_electric_equipment.sql | 111 +++++++++ .../vw_electromechanical_equipment.sql | 111 +++++++++ .../heritage_dss2015/vw_fountain.sql | 115 +++++++++ .../vw_infiltration_installation.sql | 218 ++++++++++++++++++ .../heritage_dss2015/vw_param_ca_general.sql | 131 +++++++++++ .../heritage_dss2015/vw_param_ca_mouse1.sql | 135 +++++++++++ .../heritage_dss2015/vw_reach_relining.sql | 29 +++ .../heritage_dss2015/vw_reservoir.sql | 115 +++++++++ .../heritage_dss2015/vw_solids_retention.sql | 119 ++++++++++ .../heritage_dss2015/vw_tank_cleaning.sql | 111 +++++++++ .../heritage_dss2015/vw_tank_emptying.sql | 115 +++++++++ .../vw_tww_catchment_area.sql | 211 +++++++++++++++++ .../vw_tww_maintenance_on_reach.sql | 40 ++++ .../vw_tww_maintenance_on_wws.sql | 37 +++ .../heritage_dss2015/vw_wwtp_structure.sql | 170 ++++++++++++++ 16 files changed, 1891 insertions(+) create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_building.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_electric_equipment.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_electromechanical_equipment.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_fountain.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_infiltration_installation.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_general.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_mouse1.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_reach_relining.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_reservoir.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_solids_retention.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tank_cleaning.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tank_emptying.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tww_catchment_area.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_reach.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_wws.sql create mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_wwtp_structure.sql diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_building.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_building.sql new file mode 100644 index 000000000..abc2f2e54 --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_building.sql @@ -0,0 +1,123 @@ +DROP VIEW IF EXISTS tww_app.vw_building; + + +-------- +-- Subclass: building +-- Superclass: connection_object +-------- +CREATE OR REPLACE VIEW tww_app.vw_building AS + +SELECT + BU.obj_id + , BU.house_number + , BU.location_name + , BU.perimeter_geometry + , BU.reference_point_geometry + , CN.identifier + , CN.remark + , CN.sewer_infiltration_water_production + , CN.fk_dataowner + , CN.fk_provider + , CN.last_modification + , CN.fk_wastewater_networkelement + , CN.fk_owner + , CN.fk_operator + FROM tww_od.building BU + LEFT JOIN tww_od.connection_object CN + ON CN.obj_id = BU.obj_id; + +----------------------------------- +-- building INSERT +-- Function: vw_building_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_building_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.connection_object ( + obj_id + , identifier + , remark + , sewer_infiltration_water_production + , fk_dataowner + , fk_provider + , last_modification + , fk_wastewater_networkelement + , fk_owner + , fk_operator + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','building')) -- obj_id + , NEW.identifier + , NEW.remark + , NEW.sewer_infiltration_water_production + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_wastewater_networkelement + , NEW.fk_owner + , NEW.fk_operator + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.building ( + obj_id + , house_number + , location_name + , perimeter_geometry + , reference_point_geometry + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.house_number + , NEW.location_name + , NEW.perimeter_geometry + , NEW.reference_point_geometry + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_building_ON_INSERT ON tww_od.building; + +CREATE TRIGGER vw_building_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_building + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_building_insert(); + +----------------------------------- +-- building UPDATE +-- Rule: vw_building_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_building_ON_UPDATE AS ON UPDATE TO tww_app.vw_building DO INSTEAD ( +UPDATE tww_od.building + SET + house_number = NEW.house_number + , location_name = NEW.location_name + , perimeter_geometry = NEW.perimeter_geometry + , reference_point_geometry = NEW.reference_point_geometry + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.connection_object + SET + identifier = NEW.identifier + , remark = NEW.remark + , sewer_infiltration_water_production = NEW.sewer_infiltration_water_production + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_wastewater_networkelement = NEW.fk_wastewater_networkelement + , fk_owner = NEW.fk_owner + , fk_operator = NEW.fk_operator + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- building DELETE +-- Rule: vw_building_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_building_ON_DELETE AS ON DELETE TO tww_app.vw_building DO INSTEAD ( + DELETE FROM tww_od.building WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.connection_object WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_electric_equipment.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_electric_equipment.sql new file mode 100644 index 000000000..2f805f270 --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_electric_equipment.sql @@ -0,0 +1,111 @@ +DROP VIEW IF EXISTS tww_app.vw_electric_equipment; + + +-------- +-- Subclass: electric_equipment +-- Superclass: structure_part +-------- +CREATE OR REPLACE VIEW tww_app.vw_electric_equipment AS + +SELECT + EE.obj_id + , EE.gross_costs + , EE.kind + , EE.year_of_replacement + , SP.identifier + , SP.remark + , SP.renovation_demand + , SP.fk_dataowner + , SP.fk_provider + , SP.last_modification + , SP.fk_wastewater_structure + FROM tww_od.electric_equipment EE + LEFT JOIN tww_od.structure_part SP + ON SP.obj_id = EE.obj_id; + +----------------------------------- +-- electric_equipment INSERT +-- Function: vw_electric_equipment_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_electric_equipment_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.structure_part ( + obj_id + , identifier + , remark + , renovation_demand + , fk_dataowner + , fk_provider + , last_modification + , fk_wastewater_structure + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','electric_equipment')) -- obj_id + , NEW.identifier + , NEW.remark + , NEW.renovation_demand + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_wastewater_structure + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.electric_equipment ( + obj_id + , gross_costs + , kind + , year_of_replacement + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.gross_costs + , NEW.kind + , NEW.year_of_replacement + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_electric_equipment_ON_INSERT ON tww_od.electric_equipment; + +CREATE TRIGGER vw_electric_equipment_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_electric_equipment + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_electric_equipment_insert(); + +----------------------------------- +-- electric_equipment UPDATE +-- Rule: vw_electric_equipment_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_electric_equipment_ON_UPDATE AS ON UPDATE TO tww_app.vw_electric_equipment DO INSTEAD ( +UPDATE tww_od.electric_equipment + SET + gross_costs = NEW.gross_costs + , kind = NEW.kind + , year_of_replacement = NEW.year_of_replacement + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.structure_part + SET + identifier = NEW.identifier + , remark = NEW.remark + , renovation_demand = NEW.renovation_demand + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_wastewater_structure = NEW.fk_wastewater_structure + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- electric_equipment DELETE +-- Rule: vw_electric_equipment_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_electric_equipment_ON_DELETE AS ON DELETE TO tww_app.vw_electric_equipment DO INSTEAD ( + DELETE FROM tww_od.electric_equipment WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_electromechanical_equipment.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_electromechanical_equipment.sql new file mode 100644 index 000000000..223cfe775 --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_electromechanical_equipment.sql @@ -0,0 +1,111 @@ +DROP VIEW IF EXISTS tww_app.vw_electromechanical_equipment; + + +-------- +-- Subclass: electromechanical_equipment +-- Superclass: structure_part +-------- +CREATE OR REPLACE VIEW tww_app.vw_electromechanical_equipment AS + +SELECT + EQ.obj_id + , EQ.gross_costs + , EQ.kind + , EQ.year_of_replacement + , SP.identifier + , SP.remark + , SP.renovation_demand + , SP.fk_dataowner + , SP.fk_provider + , SP.last_modification + , SP.fk_wastewater_structure + FROM tww_od.electromechanical_equipment EQ + LEFT JOIN tww_od.structure_part SP + ON SP.obj_id = EQ.obj_id; + +----------------------------------- +-- electromechanical_equipment INSERT +-- Function: vw_electromechanical_equipment_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_electromechanical_equipment_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.structure_part ( + obj_id + , identifier + , remark + , renovation_demand + , fk_dataowner + , fk_provider + , last_modification + , fk_wastewater_structure + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','electromechanical_equipment')) -- obj_id + , NEW.identifier + , NEW.remark + , NEW.renovation_demand + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_wastewater_structure + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.electromechanical_equipment ( + obj_id + , gross_costs + , kind + , year_of_replacement + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.gross_costs + , NEW.kind + , NEW.year_of_replacement + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_electromechanical_equipment_ON_INSERT ON tww_od.electromechanical_equipment; + +CREATE TRIGGER vw_electromechanical_equipment_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_electromechanical_equipment + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_electromechanical_equipment_insert(); + +----------------------------------- +-- electromechanical_equipment UPDATE +-- Rule: vw_electromechanical_equipment_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_electromechanical_equipment_ON_UPDATE AS ON UPDATE TO tww_app.vw_electromechanical_equipment DO INSTEAD ( +UPDATE tww_od.electromechanical_equipment + SET + gross_costs = NEW.gross_costs + , kind = NEW.kind + , year_of_replacement = NEW.year_of_replacement + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.structure_part + SET + identifier = NEW.identifier + , remark = NEW.remark + , renovation_demand = NEW.renovation_demand + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_wastewater_structure = NEW.fk_wastewater_structure + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- electromechanical_equipment DELETE +-- Rule: vw_electromechanical_equipment_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_electromechanical_equipment_ON_DELETE AS ON DELETE TO tww_app.vw_electromechanical_equipment DO INSTEAD ( + DELETE FROM tww_od.electromechanical_equipment WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_fountain.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_fountain.sql new file mode 100644 index 000000000..7059770fd --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_fountain.sql @@ -0,0 +1,115 @@ +DROP VIEW IF EXISTS tww_app.vw_fountain; + + +-------- +-- Subclass: fountain +-- Superclass: connection_object +-------- +CREATE OR REPLACE VIEW tww_app.vw_fountain AS + +SELECT + FO.obj_id + , FO.location_name + , FO.situation_geometry + , CN.identifier + , CN.remark + , CN.sewer_infiltration_water_production + , CN.fk_dataowner + , CN.fk_provider + , CN.last_modification + , CN.fk_wastewater_networkelement + , CN.fk_owner + , CN.fk_operator + FROM tww_od.fountain FO + LEFT JOIN tww_od.connection_object CN + ON CN.obj_id = FO.obj_id; + +----------------------------------- +-- fountain INSERT +-- Function: vw_fountain_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_fountain_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.connection_object ( + obj_id + , identifier + , remark + , sewer_infiltration_water_production + , fk_dataowner + , fk_provider + , last_modification + , fk_wastewater_networkelement + , fk_owner + , fk_operator + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','fountain')) -- obj_id + , NEW.identifier + , NEW.remark + , NEW.sewer_infiltration_water_production + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_wastewater_networkelement + , NEW.fk_owner + , NEW.fk_operator + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.fountain ( + obj_id + , location_name + , situation_geometry + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.location_name + , NEW.situation_geometry + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_fountain_ON_INSERT ON tww_od.fountain; + +CREATE TRIGGER vw_fountain_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_fountain + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_fountain_insert(); + +----------------------------------- +-- fountain UPDATE +-- Rule: vw_fountain_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_fountain_ON_UPDATE AS ON UPDATE TO tww_app.vw_fountain DO INSTEAD ( +UPDATE tww_od.fountain + SET + location_name = NEW.location_name + , situation_geometry = NEW.situation_geometry + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.connection_object + SET + identifier = NEW.identifier + , remark = NEW.remark + , sewer_infiltration_water_production = NEW.sewer_infiltration_water_production + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_wastewater_networkelement = NEW.fk_wastewater_networkelement + , fk_owner = NEW.fk_owner + , fk_operator = NEW.fk_operator + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- fountain DELETE +-- Rule: vw_fountain_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_fountain_ON_DELETE AS ON DELETE TO tww_app.vw_fountain DO INSTEAD ( + DELETE FROM tww_od.fountain WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.connection_object WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_infiltration_installation.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_infiltration_installation.sql new file mode 100644 index 000000000..30fca72f3 --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_infiltration_installation.sql @@ -0,0 +1,218 @@ +DROP VIEW IF EXISTS tww_app.vw_infiltration_installation; + +-------- +-- Subclass: infiltration_installation +-- Superclass: wastewater_structure +-------- +CREATE OR REPLACE VIEW tww_app.vw_infiltration_installation AS + +SELECT + II.obj_id + , II.absorption_capacity + , II.defects + , II.dimension1 + , II.dimension2 + , II.distance_to_aquifer + , II.effective_area + , II.emergency_spillway + , II.kind + , II.labeling + , II.seepage_utilization + , II.upper_elevation + , II.vehicle_access + , II.watertightness + , WS.accessibility + , WS.contract_section + , WS.detail_geometry_geometry + , WS.financing + , WS.gross_costs + , WS.identifier + , WS.inspection_interval + , WS.location_name + , WS.records + , WS.remark + , WS.renovation_necessity + , WS.replacement_value + , WS.rv_base_year + , WS.rv_construction_type + , WS.status + , WS.structure_condition + , WS.subsidies + , WS.year_of_construction + , WS.year_of_replacement + , WS.fk_dataowner + , WS.fk_provider + , WS.last_modification + , WS.fk_owner + , WS.fk_operator + FROM tww_od.infiltration_installation II + LEFT JOIN tww_od.wastewater_structure WS + ON WS.obj_id = II.obj_id; + +----------------------------------- +-- infiltration_installation INSERT +-- Function: vw_infiltration_installation_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_infiltration_installation_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.wastewater_structure ( + obj_id + , accessibility + , contract_section + , detail_geometry_geometry + , financing + , gross_costs + , identifier + , inspection_interval + , location_name + , records + , remark + , renovation_necessity + , replacement_value + , rv_base_year + , rv_construction_type + , status + , structure_condition + , subsidies + , year_of_construction + , year_of_replacement + , fk_dataowner + , fk_provider + , last_modification + , fk_owner + , fk_operator + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','infiltration_installation')) -- obj_id + , NEW.accessibility + , NEW.contract_section + , NEW.detail_geometry_geometry + , NEW.financing + , NEW.gross_costs + , NEW.identifier + , NEW.inspection_interval + , NEW.location_name + , NEW.records + , NEW.remark + , NEW.renovation_necessity + , NEW.replacement_value + , NEW.rv_base_year + , NEW.rv_construction_type + , NEW.status + , NEW.structure_condition + , NEW.subsidies + , NEW.year_of_construction + , NEW.year_of_replacement + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_owner + , NEW.fk_operator + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.infiltration_installation ( + obj_id + , absorption_capacity + , defects + , dimension1 + , dimension2 + , distance_to_aquifer + , effective_area + , emergency_spillway + , kind + , labeling + , seepage_utilization + , upper_elevation + , vehicle_access + , watertightness + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.absorption_capacity + , NEW.defects + , NEW.dimension1 + , NEW.dimension2 + , NEW.distance_to_aquifer + , NEW.effective_area + , NEW.emergency_spillway + , NEW.kind + , NEW.labeling + , NEW.seepage_utilization + , NEW.upper_elevation + , NEW.vehicle_access + , NEW.watertightness + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_infiltration_installation_ON_INSERT ON tww_od.infiltration_installation; + +CREATE TRIGGER vw_infiltration_installation_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_infiltration_installation + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_infiltration_installation_insert(); + +----------------------------------- +-- infiltration_installation UPDATE +-- Rule: vw_infiltration_installation_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_infiltration_installation_ON_UPDATE AS ON UPDATE TO tww_app.vw_infiltration_installation DO INSTEAD ( +UPDATE tww_od.infiltration_installation + SET + absorption_capacity = NEW.absorption_capacity + , defects = NEW.defects + , dimension1 = NEW.dimension1 + , dimension2 = NEW.dimension2 + , distance_to_aquifer = NEW.distance_to_aquifer + , effective_area = NEW.effective_area + , emergency_spillway = NEW.emergency_spillway + , kind = NEW.kind + , labeling = NEW.labeling + , seepage_utilization = NEW.seepage_utilization + , upper_elevation = NEW.upper_elevation + , vehicle_access = NEW.vehicle_access + , watertightness = NEW.watertightness + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.wastewater_structure + SET + accessibility = NEW.accessibility + , contract_section = NEW.contract_section + , detail_geometry_geometry = NEW.detail_geometry_geometry + , financing = NEW.financing + , gross_costs = NEW.gross_costs + , identifier = NEW.identifier + , inspection_interval = NEW.inspection_interval + , location_name = NEW.location_name + , records = NEW.records + , remark = NEW.remark + , renovation_necessity = NEW.renovation_necessity + , replacement_value = NEW.replacement_value + , rv_base_year = NEW.rv_base_year + , rv_construction_type = NEW.rv_construction_type + , status = NEW.status + , structure_condition = NEW.structure_condition + , subsidies = NEW.subsidies + , year_of_construction = NEW.year_of_construction + , year_of_replacement = NEW.year_of_replacement + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_owner = NEW.fk_owner + , fk_operator = NEW.fk_operator + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- infiltration_installation DELETE +-- Rule: vw_infiltration_installation_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_infiltration_installation_ON_DELETE AS ON DELETE TO tww_app.vw_infiltration_installation DO INSTEAD ( + DELETE FROM tww_od.infiltration_installation WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.wastewater_structure WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_general.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_general.sql new file mode 100644 index 000000000..75d5cb26b --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_general.sql @@ -0,0 +1,131 @@ +DROP VIEW IF EXISTS tww_app.vw_param_ca_general; + + +-------- +-- Subclass: param_ca_general +-- Superclass: surface_runoff_parameters +-------- +CREATE OR REPLACE VIEW tww_app.vw_param_ca_general AS + +SELECT + PC.obj_id + , PC.dry_wheather_flow + , PC.flow_path_length + , PC.flow_path_slope + , PC.population_equivalent + , PC.surface_ca + , SR.evaporation_loss + , SR.identifier + , SR.infiltration_loss + , SR.remark + , SR.surface_storage + , SR.wetting_loss + , SR.fk_dataowner + , SR.fk_provider + , SR.last_modification + , SR.fk_catchment_area + FROM tww_od.param_ca_general PC + LEFT JOIN tww_od.surface_runoff_parameters SR + ON SR.obj_id = PC.obj_id; + +----------------------------------- +-- param_ca_general INSERT +-- Function: vw_param_ca_general_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_param_ca_general_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.surface_runoff_parameters ( + obj_id + , evaporation_loss + , identifier + , infiltration_loss + , remark + , surface_storage + , wetting_loss + , fk_dataowner + , fk_provider + , last_modification + , fk_catchment_area + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','param_ca_general')) -- obj_id + , NEW.evaporation_loss + , NEW.identifier + , NEW.infiltration_loss + , NEW.remark + , NEW.surface_storage + , NEW.wetting_loss + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_catchment_area + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.param_ca_general ( + obj_id + , dry_wheather_flow + , flow_path_length + , flow_path_slope + , population_equivalent + , surface_ca + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.dry_wheather_flow + , NEW.flow_path_length + , NEW.flow_path_slope + , NEW.population_equivalent + , NEW.surface_ca + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_param_ca_general_ON_INSERT ON tww_od.param_ca_general; + +CREATE TRIGGER vw_param_ca_general_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_param_ca_general + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_param_ca_general_insert(); + +----------------------------------- +-- param_ca_general UPDATE +-- Rule: vw_param_ca_general_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_param_ca_general_ON_UPDATE AS ON UPDATE TO tww_app.vw_param_ca_general DO INSTEAD ( +UPDATE tww_od.param_ca_general + SET + dry_wheather_flow = NEW.dry_wheather_flow + , flow_path_length = NEW.flow_path_length + , flow_path_slope = NEW.flow_path_slope + , population_equivalent = NEW.population_equivalent + , surface_ca = NEW.surface_ca + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.surface_runoff_parameters + SET + evaporation_loss = NEW.evaporation_loss + , identifier = NEW.identifier + , infiltration_loss = NEW.infiltration_loss + , remark = NEW.remark + , surface_storage = NEW.surface_storage + , wetting_loss = NEW.wetting_loss + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_catchment_area = NEW.fk_catchment_area + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- param_ca_general DELETE +-- Rule: vw_param_ca_general_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_param_ca_general_ON_DELETE AS ON DELETE TO tww_app.vw_param_ca_general DO INSTEAD ( + DELETE FROM tww_od.param_ca_general WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.surface_runoff_parameters WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_mouse1.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_mouse1.sql new file mode 100644 index 000000000..7bc6f7073 --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_mouse1.sql @@ -0,0 +1,135 @@ +DROP VIEW IF EXISTS tww_app.vw_param_ca_mouse1; + + +-------- +-- Subclass: param_ca_mouse1 +-- Superclass: surface_runoff_parameters +-------- +CREATE OR REPLACE VIEW tww_app.vw_param_ca_mouse1 AS + +SELECT + PM.obj_id + , PM.dry_wheather_flow + , PM.flow_path_length + , PM.flow_path_slope + , PM.population_equivalent + , PM.surface_ca_mouse + , PM.usage + , SR.evaporation_loss + , SR.identifier + , SR.infiltration_loss + , SR.remark + , SR.surface_storage + , SR.wetting_loss + , SR.fk_dataowner + , SR.fk_provider + , SR.last_modification + , SR.fk_catchment_area + FROM tww_od.param_ca_mouse1 PM + LEFT JOIN tww_od.surface_runoff_parameters SR + ON SR.obj_id = PM.obj_id; + +----------------------------------- +-- param_ca_mouse1 INSERT +-- Function: vw_param_ca_mouse1_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_param_ca_mouse1_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.surface_runoff_parameters ( + obj_id + , evaporation_loss + , identifier + , infiltration_loss + , remark + , surface_storage + , wetting_loss + , fk_dataowner + , fk_provider + , last_modification + , fk_catchment_area + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','param_ca_mouse1')) -- obj_id + , NEW.evaporation_loss + , NEW.identifier + , NEW.infiltration_loss + , NEW.remark + , NEW.surface_storage + , NEW.wetting_loss + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_catchment_area + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.param_ca_mouse1 ( + obj_id + , dry_wheather_flow + , flow_path_length + , flow_path_slope + , population_equivalent + , surface_ca_mouse + , usage + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.dry_wheather_flow + , NEW.flow_path_length + , NEW.flow_path_slope + , NEW.population_equivalent + , NEW.surface_ca_mouse + , NEW.usage + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_param_ca_mouse1_ON_INSERT ON tww_od.param_ca_mouse1; + +CREATE TRIGGER vw_param_ca_mouse1_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_param_ca_mouse1 + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_param_ca_mouse1_insert(); + +----------------------------------- +-- param_ca_mouse1 UPDATE +-- Rule: vw_param_ca_mouse1_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_param_ca_mouse1_ON_UPDATE AS ON UPDATE TO tww_app.vw_param_ca_mouse1 DO INSTEAD ( +UPDATE tww_od.param_ca_mouse1 + SET + dry_wheather_flow = NEW.dry_wheather_flow + , flow_path_length = NEW.flow_path_length + , flow_path_slope = NEW.flow_path_slope + , population_equivalent = NEW.population_equivalent + , surface_ca_mouse = NEW.surface_ca_mouse + , usage = NEW.usage + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.surface_runoff_parameters + SET + evaporation_loss = NEW.evaporation_loss + , identifier = NEW.identifier + , infiltration_loss = NEW.infiltration_loss + , remark = NEW.remark + , surface_storage = NEW.surface_storage + , wetting_loss = NEW.wetting_loss + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_catchment_area = NEW.fk_catchment_area + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- param_ca_mouse1 DELETE +-- Rule: vw_param_ca_mouse1_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_param_ca_mouse1_ON_DELETE AS ON DELETE TO tww_app.vw_param_ca_mouse1 DO INSTEAD ( + DELETE FROM tww_od.param_ca_mouse1 WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.surface_runoff_parameters WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_reach_relining.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_reach_relining.sql new file mode 100644 index 000000000..61a90b92a --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_reach_relining.sql @@ -0,0 +1,29 @@ +-- View: tww_app.vw_reach_relining + +-- DROP VIEW tww_app.vw_reach_relining; + +CREATE OR REPLACE VIEW tww_app.vw_reach_relining AS + SELECT re.obj_id, + re.clear_height, + re.inside_coating, + re.length_effective, + re.material, + re.progression3d_geometry, + re.reliner_material, + re.reliner_nominal_size, + re.relining_construction, + re.relining_kind, + re.ring_stiffness, + re.wall_roughness, + we.identifier, + we.remark, + we.last_modification, + we.fk_wastewater_structure + FROM tww_od.reach re + LEFT JOIN tww_od.wastewater_networkelement we ON we.obj_id::text = re.obj_id::text + Where re.relining_construction > 1 or re.material = 5078; + +ALTER TABLE tww_app.vw_reach_relining + OWNER TO postgres; +GRANT ALL ON TABLE tww_app.vw_reach_relining TO postgres; +GRANT ALL ON TABLE tww_app.vw_reach_relining TO tww; diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_reservoir.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_reservoir.sql new file mode 100644 index 000000000..c0db7930a --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_reservoir.sql @@ -0,0 +1,115 @@ +DROP VIEW IF EXISTS tww_app.vw_reservoir; + + +-------- +-- Subclass: reservoir +-- Superclass: connection_object +-------- +CREATE OR REPLACE VIEW tww_app.vw_reservoir AS + +SELECT + RV.obj_id + , RV.location_name + , RV.situation_geometry + , CN.identifier + , CN.remark + , CN.sewer_infiltration_water_production + , CN.fk_dataowner + , CN.fk_provider + , CN.last_modification + , CN.fk_wastewater_networkelement + , CN.fk_owner + , CN.fk_operator + FROM tww_od.reservoir RV + LEFT JOIN tww_od.connection_object CN + ON CN.obj_id = RV.obj_id; + +----------------------------------- +-- reservoir INSERT +-- Function: vw_reservoir_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_reservoir_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.connection_object ( + obj_id + , identifier + , remark + , sewer_infiltration_water_production + , fk_dataowner + , fk_provider + , last_modification + , fk_wastewater_networkelement + , fk_owner + , fk_operator + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','reservoir')) -- obj_id + , NEW.identifier + , NEW.remark + , NEW.sewer_infiltration_water_production + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_wastewater_networkelement + , NEW.fk_owner + , NEW.fk_operator + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.reservoir ( + obj_id + , location_name + , situation_geometry + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.location_name + , NEW.situation_geometry + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_reservoir_ON_INSERT ON tww_od.reservoir; + +CREATE TRIGGER vw_reservoir_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_reservoir + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_reservoir_insert(); + +----------------------------------- +-- reservoir UPDATE +-- Rule: vw_reservoir_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_reservoir_ON_UPDATE AS ON UPDATE TO tww_app.vw_reservoir DO INSTEAD ( +UPDATE tww_od.reservoir + SET + location_name = NEW.location_name + , situation_geometry = NEW.situation_geometry + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.connection_object + SET + identifier = NEW.identifier + , remark = NEW.remark + , sewer_infiltration_water_production = NEW.sewer_infiltration_water_production + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_wastewater_networkelement = NEW.fk_wastewater_networkelement + , fk_owner = NEW.fk_owner + , fk_operator = NEW.fk_operator + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- reservoir DELETE +-- Rule: vw_reservoir_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_reservoir_ON_DELETE AS ON DELETE TO tww_app.vw_reservoir DO INSTEAD ( + DELETE FROM tww_od.reservoir WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.connection_object WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_solids_retention.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_solids_retention.sql new file mode 100644 index 000000000..e1eb938d5 --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_solids_retention.sql @@ -0,0 +1,119 @@ +DROP VIEW IF EXISTS tww_app.vw_solids_retention; + + +-------- +-- Subclass: solids_retention +-- Superclass: structure_part +-------- +CREATE OR REPLACE VIEW tww_app.vw_solids_retention AS + +SELECT + SO.obj_id + , SO.dimensioning_value + , SO.gross_costs + , SO.overflow_level + , SO.type + , SO.year_of_replacement + , SP.identifier + , SP.remark + , SP.renovation_demand + , SP.fk_dataowner + , SP.fk_provider + , SP.last_modification + , SP.fk_wastewater_structure + FROM tww_od.solids_retention SO + LEFT JOIN tww_od.structure_part SP + ON SP.obj_id = SO.obj_id; + +----------------------------------- +-- solids_retention INSERT +-- Function: vw_solids_retention_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_solids_retention_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.structure_part ( + obj_id + , identifier + , remark + , renovation_demand + , fk_dataowner + , fk_provider + , last_modification + , fk_wastewater_structure + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','solids_retention')) -- obj_id + , NEW.identifier + , NEW.remark + , NEW.renovation_demand + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_wastewater_structure + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.solids_retention ( + obj_id + , dimensioning_value + , gross_costs + , overflow_level + , type + , year_of_replacement + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.dimensioning_value + , NEW.gross_costs + , NEW.overflow_level + , NEW.type + , NEW.year_of_replacement + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_solids_retention_ON_INSERT ON tww_od.solids_retention; + +CREATE TRIGGER vw_solids_retention_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_solids_retention + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_solids_retention_insert(); + +----------------------------------- +-- solids_retention UPDATE +-- Rule: vw_solids_retention_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_solids_retention_ON_UPDATE AS ON UPDATE TO tww_app.vw_solids_retention DO INSTEAD ( +UPDATE tww_od.solids_retention + SET + dimensioning_value = NEW.dimensioning_value + , gross_costs = NEW.gross_costs + , overflow_level = NEW.overflow_level + , type = NEW.type + , year_of_replacement = NEW.year_of_replacement + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.structure_part + SET + identifier = NEW.identifier + , remark = NEW.remark + , renovation_demand = NEW.renovation_demand + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_wastewater_structure = NEW.fk_wastewater_structure + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- solids_retention DELETE +-- Rule: vw_solids_retention_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_solids_retention_ON_DELETE AS ON DELETE TO tww_app.vw_solids_retention DO INSTEAD ( + DELETE FROM tww_od.solids_retention WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_cleaning.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_cleaning.sql new file mode 100644 index 000000000..80299f8cb --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_cleaning.sql @@ -0,0 +1,111 @@ +DROP VIEW IF EXISTS tww_app.vw_tank_cleaning; + + +-------- +-- Subclass: tank_cleaning +-- Superclass: structure_part +-------- +CREATE OR REPLACE VIEW tww_app.vw_tank_cleaning AS + +SELECT + TC.obj_id + , TC.gross_costs + , TC.type + , TC.year_of_replacement + , SP.identifier + , SP.remark + , SP.renovation_demand + , SP.fk_dataowner + , SP.fk_provider + , SP.last_modification + , SP.fk_wastewater_structure + FROM tww_od.tank_cleaning TC + LEFT JOIN tww_od.structure_part SP + ON SP.obj_id = TC.obj_id; + +----------------------------------- +-- tank_cleaning INSERT +-- Function: vw_tank_cleaning_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_tank_cleaning_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.structure_part ( + obj_id + , identifier + , remark + , renovation_demand + , fk_dataowner + , fk_provider + , last_modification + , fk_wastewater_structure + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','tank_cleaning')) -- obj_id + , NEW.identifier + , NEW.remark + , NEW.renovation_demand + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_wastewater_structure + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.tank_cleaning ( + obj_id + , gross_costs + , type + , year_of_replacement + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.gross_costs + , NEW.type + , NEW.year_of_replacement + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_tank_cleaning_ON_INSERT ON tww_od.tank_cleaning; + +CREATE TRIGGER vw_tank_cleaning_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_tank_cleaning + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_tank_cleaning_insert(); + +----------------------------------- +-- tank_cleaning UPDATE +-- Rule: vw_tank_cleaning_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_tank_cleaning_ON_UPDATE AS ON UPDATE TO tww_app.vw_tank_cleaning DO INSTEAD ( +UPDATE tww_od.tank_cleaning + SET + gross_costs = NEW.gross_costs + , type = NEW.type + , year_of_replacement = NEW.year_of_replacement + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.structure_part + SET + identifier = NEW.identifier + , remark = NEW.remark + , renovation_demand = NEW.renovation_demand + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_wastewater_structure = NEW.fk_wastewater_structure + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- tank_cleaning DELETE +-- Rule: vw_tank_cleaning_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_tank_cleaning_ON_DELETE AS ON DELETE TO tww_app.vw_tank_cleaning DO INSTEAD ( + DELETE FROM tww_od.tank_cleaning WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_emptying.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_emptying.sql new file mode 100644 index 000000000..60e351d9a --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_emptying.sql @@ -0,0 +1,115 @@ +DROP VIEW IF EXISTS tww_app.vw_tank_emptying; + + +-------- +-- Subclass: tank_emptying +-- Superclass: structure_part +-------- +CREATE OR REPLACE VIEW tww_app.vw_tank_emptying AS + +SELECT + TE.obj_id + , TE.flow + , TE.gross_costs + , TE.type + , TE.year_of_replacement + , SP.identifier + , SP.remark + , SP.renovation_demand + , SP.fk_dataowner + , SP.fk_provider + , SP.last_modification + , SP.fk_wastewater_structure + FROM tww_od.tank_emptying TE + LEFT JOIN tww_od.structure_part SP + ON SP.obj_id = TE.obj_id; + +----------------------------------- +-- tank_emptying INSERT +-- Function: vw_tank_emptying_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_tank_emptying_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.structure_part ( + obj_id + , identifier + , remark + , renovation_demand + , fk_dataowner + , fk_provider + , last_modification + , fk_wastewater_structure + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','tank_emptying')) -- obj_id + , NEW.identifier + , NEW.remark + , NEW.renovation_demand + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_wastewater_structure + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.tank_emptying ( + obj_id + , flow + , gross_costs + , type + , year_of_replacement + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.flow + , NEW.gross_costs + , NEW.type + , NEW.year_of_replacement + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_tank_emptying_ON_INSERT ON tww_od.tank_emptying; + +CREATE TRIGGER vw_tank_emptying_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_tank_emptying + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_tank_emptying_insert(); + +----------------------------------- +-- tank_emptying UPDATE +-- Rule: vw_tank_emptying_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_tank_emptying_ON_UPDATE AS ON UPDATE TO tww_app.vw_tank_emptying DO INSTEAD ( +UPDATE tww_od.tank_emptying + SET + flow = NEW.flow + , gross_costs = NEW.gross_costs + , type = NEW.type + , year_of_replacement = NEW.year_of_replacement + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.structure_part + SET + identifier = NEW.identifier + , remark = NEW.remark + , renovation_demand = NEW.renovation_demand + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_wastewater_structure = NEW.fk_wastewater_structure + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- tank_emptying DELETE +-- Rule: vw_tank_emptying_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_tank_emptying_ON_DELETE AS ON DELETE TO tww_app.vw_tank_emptying DO INSTEAD ( + DELETE FROM tww_od.tank_emptying WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_catchment_area.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_catchment_area.sql new file mode 100644 index 000000000..8bfb669b0 --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_catchment_area.sql @@ -0,0 +1,211 @@ +CREATE OR REPLACE VIEW tww_app.vw_tww_catchment_area AS + +SELECT + CA.obj_id, + direct_discharge_current, + direct_discharge_planned, + discharge_coefficient_rw_current, + discharge_coefficient_rw_planned, + discharge_coefficient_ww_current, + discharge_coefficient_ww_planned, + drainage_system_current, + drainage_system_planned, + CA.identifier, + infiltration_current, + infiltration_planned, + perimeter_geometry, + population_density_current, + population_density_planned, + CA.remark, + retention_current, + retention_planned, + runoff_limit_current, + runoff_limit_planned, + seal_factor_rw_current, + seal_factor_rw_planned, + seal_factor_ww_current, + seal_factor_ww_planned, + sewer_infiltration_water_production_current, + sewer_infiltration_water_production_planned, + surface_area, + waste_water_production_current, + waste_water_production_planned, + CA.last_modification, + CA.fk_dataowner, + CA.fk_provider, + fk_wastewater_networkelement_rw_current, + fk_wastewater_networkelement_rw_planned, + fk_wastewater_networkelement_ww_planned, + fk_wastewater_networkelement_ww_current, + NE_rw_current.identifier AS rw_current_identifier, + NE_rw_planned.identifier AS rw_planned_identifier, + NE_ww_planned.identifier AS ww_planned_identifier, + NE_ww_current.identifier AS ww_current_identifier + FROM tww_od.catchment_area CA +LEFT JOIN tww_od.wastewater_networkelement NE_rw_current + ON CA.fk_wastewater_networkelement_rw_current = NE_rw_current.obj_id +LEFT JOIN tww_od.wastewater_networkelement NE_rw_planned + ON CA.fk_wastewater_networkelement_rw_planned = NE_rw_planned.obj_id +LEFT JOIN tww_od.wastewater_networkelement NE_ww_planned + ON CA.fk_wastewater_networkelement_ww_planned = NE_ww_planned.obj_id +LEFT JOIN tww_od.wastewater_networkelement NE_ww_current + ON CA.fk_wastewater_networkelement_ww_current = NE_ww_current.obj_id; + + +----------------------------------- +-- catchment_area INSERT +-- Function: vw_tww_catchment_area_insert() +----------------------------------- + + +CREATE OR REPLACE FUNCTION tww_app.vw_tww_catchment_area_insert() + RETURNS trigger AS +$BODY$ +BEGIN +INSERT INTO tww_od.catchment_area( + obj_id + , direct_discharge_current + , direct_discharge_planned + , discharge_coefficient_rw_current + , discharge_coefficient_rw_planned + , discharge_coefficient_ww_current + , discharge_coefficient_ww_planned + , drainage_system_current + , drainage_system_planned + , identifier + , infiltration_current + , infiltration_planned + , perimeter_geometry + , population_density_current + , population_density_planned + , remark + , retention_current + , retention_planned + , runoff_limit_current + , runoff_limit_planned + , seal_factor_rw_current + , seal_factor_rw_planned + , seal_factor_ww_current + , seal_factor_ww_planned + , sewer_infiltration_water_production_current + , sewer_infiltration_water_production_planned + , surface_area + , waste_water_production_current + , waste_water_production_planned + , last_modification + , fk_dataowner + , fk_provider + , fk_wastewater_networkelement_rw_current + , fk_wastewater_networkelement_rw_planned + , fk_wastewater_networkelement_ww_planned + , fk_wastewater_networkelement_ww_current) +VALUES ( + COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','catchment_area')) + , NEW.direct_discharge_current + , NEW.direct_discharge_planned=NEW.NEW.direct_discharge_planned + , NEW.discharge_coefficient_rw_current + , NEW.discharge_coefficient_rw_planned + , NEW.discharge_coefficient_ww_current + , NEW.discharge_coefficient_ww_planned + , NEW.drainage_system_current + , NEW.drainage_system_planned + , NEW.identifier + , NEW.infiltration_current + , NEW.infiltration_planned + , NEW.perimeter_geometry + , NEW.population_density_current + , NEW.population_density_planned + , NEW.remark + , NEW.retention_current + , NEW.retention_planned + , NEW.runoff_limit_current + , NEW.runoff_limit_planned + , NEW.seal_factor_rw_current + , NEW.seal_factor_rw_planned + , NEW.seal_factor_ww_current + , NEW.seal_factor_ww_planned + , NEW.sewer_infiltration_water_production_current + , NEW.sewer_infiltration_water_production_planned + , NEW.surface_area + , NEW.waste_water_production_current + , NEW.waste_water_production_planned + , NEW.last_modification + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.fk_wastewater_networkelement_rw_current + , NEW.fk_wastewater_networkelement_rw_planned + , NEW.fk_wastewater_networkelement_ww_planned + , NEW.fk_wastewater_networkelement_ww_current +) +RETURNING obj_id INTO NEW.obj_id; + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + + +-- DROP TRIGGER vw_tww_catchment_area_ON_INSERT ON tww_od.catchment_area; + +CREATE TRIGGER vw_tww_catchment_area_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_tww_catchment_area + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_tww_catchment_area_insert(); + + +----------------------------------- +-- catchment_area UPDATE +-- Function: vw_tww_catchment_area_ON_UPDATE() +----------------------------------- + + +CREATE OR REPLACE RULE vw_tww_catchment_area_ON_UPDATE AS ON UPDATE TO tww_app.vw_tww_catchment_area DO INSTEAD ( +UPDATE tww_od.catchment_area + SET + direct_discharge_current=NEW.direct_discharge_current + , direct_discharge_planned=NEW.direct_discharge_planned + , discharge_coefficient_rw_current=NEW.discharge_coefficient_rw_current + , discharge_coefficient_rw_planned=NEW.discharge_coefficient_rw_planned + , discharge_coefficient_ww_current=NEW.discharge_coefficient_ww_current + , discharge_coefficient_ww_planned=NEW.discharge_coefficient_ww_planned + , drainage_system_current=NEW.drainage_system_current + , drainage_system_planned=NEW.drainage_system_planned + , identifier=NEW.identifier + , infiltration_current=NEW.infiltration_current + , infiltration_planned=NEW.infiltration_planned + , perimeter_geometry=NEW.perimeter_geometry + , population_density_current=NEW.population_density_current + , population_density_planned=NEW.population_density_planned + , remark=NEW.remark + , retention_current=NEW.retention_current + , retention_planned=NEW.retention_planned + , runoff_limit_current=NEW.runoff_limit_current + , runoff_limit_planned=NEW.runoff_limit_planned + , seal_factor_rw_current=NEW.seal_factor_rw_current + , seal_factor_rw_planned=NEW.seal_factor_rw_planned + , seal_factor_ww_current=NEW.seal_factor_ww_current + , seal_factor_ww_planned=NEW.seal_factor_ww_planned + , sewer_infiltration_water_production_current=NEW.sewer_infiltration_water_production_current + , sewer_infiltration_water_production_planned=NEW.sewer_infiltration_water_production_planned + , surface_area=NEW.surface_area + , waste_water_production_current=NEW.waste_water_production_current + , waste_water_production_planned=NEW.waste_water_production_planned + , last_modification=NEW.last_modification + , fk_dataowner=NEW.fk_dataowner + , fk_provider=NEW.fk_provider + , fk_wastewater_networkelement_rw_current=NEW.fk_wastewater_networkelement_rw_current + , fk_wastewater_networkelement_rw_planned=NEW.fk_wastewater_networkelement_rw_planned + , fk_wastewater_networkelement_ww_planned=NEW.fk_wastewater_networkelement_ww_planned + , fk_wastewater_networkelement_ww_current=NEW.fk_wastewater_networkelement_ww_current + + WHERE obj_id=OLD.obj_id; +); + + +----------------------------------- +-- catchment_area DELETE +-- Rule: vw_tww_catchment_area_ON_DELETE () +----------------------------------- + + +CREATE OR REPLACE RULE vw_tww_catchment_area_ON_DELETE AS ON DELETE TO tww_app.vw_tww_catchment_area DO +INSTEAD ( + DELETE FROM tww_od.catchment_area WHERE obj_id = OLD.obj_id; +); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_reach.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_reach.sql new file mode 100644 index 000000000..c32efdf8c --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_reach.sql @@ -0,0 +1,40 @@ +-- View: tww_app.vw_tww_maintenance_on_reach + +-- DROP VIEW tww_app.vw_tww_maintenance_on_reach; + +CREATE OR REPLACE VIEW tww_app.vw_tww_maintenance_on_reach AS + SELECT re_m_w.obj_id AS re_m_w_id, + maintenance.obj_id, + maintenance.identifier, + maintenance.kind, + maintenance.remark, + maintenance.status, + maintenance.time_point, + maintenance.base_data, + maintenance.cost, + maintenance.data_details, + maintenance.duration, + maintenance.operator, + maintenance.reason, + maintenance.result, + maintenance.last_modification, + maintenance.fk_operating_company, + reach.progression3d_geometry, + reach.length_effective AS re_length_effective, + reach.material AS re_material, + ch.usage_current AS ch_usage_current, + ch.function_hierarchic AS ch_function_hierarchic, + ws.status AS ws_status, + ws.fk_owner AS ws_fk_owner + FROM tww_od.maintenance_event maintenance + LEFT JOIN tww_od.re_maintenance_event_wastewater_structure re_m_w ON maintenance.obj_id::text = re_m_w.fk_maintenance_event::text + LEFT JOIN tww_od.wastewater_structure ws ON re_m_w.fk_wastewater_structure::text = ws.obj_id::text + LEFT JOIN tww_od.channel ch ON ch.obj_id::text = ws.obj_id::text + LEFT JOIN tww_od.wastewater_networkelement ne ON ne.fk_wastewater_structure::text = ws.obj_id::text + LEFT JOIN tww_od.reach reach ON reach.obj_id::text = ne.obj_id::text + WHERE ch.obj_id IS NOT NULL; + +ALTER TABLE tww_app.vw_tww_maintenance_on_reach + OWNER TO postgres; +GRANT ALL ON TABLE tww_app.vw_tww_maintenance_on_reach TO postgres; +GRANT ALL ON TABLE tww_app.vw_tww_maintenance_on_reach TO tww; diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_wws.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_wws.sql new file mode 100644 index 000000000..51747b369 --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_wws.sql @@ -0,0 +1,37 @@ +-- View: tww_app.vw_tww_maintenance_on_wws + +-- DROP VIEW tww_app.vw_tww_maintenance_on_wws; + +CREATE OR REPLACE VIEW tww_app.vw_tww_maintenance_on_wws AS + SELECT re_m_w.obj_id AS re_m_w_id, + maintenance.obj_id, + maintenance.identifier, + maintenance.kind, + maintenance.remark, + maintenance.status, + maintenance.time_point, + maintenance.base_data, + maintenance.cost, + maintenance.data_details, + maintenance.duration, + maintenance.operator, + maintenance.reason, + maintenance.result, + maintenance.last_modification, + maintenance.fk_operating_company, + node.situation_geometry, + ws.identifier AS ws_idenifier, + ws.status AS ws_status, + ws.fk_owner AS ws_fk_owner + FROM tww_od.maintenance_event maintenance + LEFT JOIN tww_od.re_maintenance_event_wastewater_structure re_m_w ON maintenance.obj_id::text = re_m_w.fk_maintenance_event::text + LEFT JOIN tww_od.wastewater_structure ws ON re_m_w.fk_wastewater_structure::text = ws.obj_id::text + LEFT JOIN tww_od.wastewater_networkelement ne ON ne.fk_wastewater_structure::text = ws.obj_id::text + LEFT JOIN tww_od.wastewater_node node ON node.obj_id::text = ne.obj_id::text + WHERE node.obj_id is not null; + + +ALTER TABLE tww_app.vw_tww_maintenance_on_wws + OWNER TO postgres; +GRANT ALL ON TABLE tww_app.vw_tww_maintenance_on_wws TO postgres; +GRANT ALL ON TABLE tww_app.vw_tww_maintenance_on_wws TO tww; diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_wwtp_structure.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_wwtp_structure.sql new file mode 100644 index 000000000..64494ea5d --- /dev/null +++ b/datamodel/app/view/unused_views/heritage_dss2015/vw_wwtp_structure.sql @@ -0,0 +1,170 @@ +DROP VIEW IF EXISTS tww_app.vw_wwtp_structure; + +-------- +-- Subclass: wwtp_structure +-- Superclass: wastewater_structure +-------- +CREATE OR REPLACE VIEW tww_app.vw_wwtp_structure AS + +SELECT + WT.obj_id + , WT.kind + , WS.accessibility + , WS.contract_section + , WS.detail_geometry_geometry + , WS.financing + , WS.gross_costs + , WS.identifier + , WS.inspection_interval + , WS.location_name + , WS.records + , WS.remark + , WS.renovation_necessity + , WS.replacement_value + , WS.rv_base_year + , WS.rv_construction_type + , WS.status + , WS.structure_condition + , WS.subsidies + , WS.year_of_construction + , WS.year_of_replacement + , WS.fk_dataowner + , WS.fk_provider + , WS.last_modification + , WS.fk_owner + , WS.fk_operator + FROM tww_od.wwtp_structure WT + LEFT JOIN tww_od.wastewater_structure WS + ON WS.obj_id = WT.obj_id; + +----------------------------------- +-- wwtp_structure INSERT +-- Function: vw_wwtp_structure_insert() +----------------------------------- + +CREATE OR REPLACE FUNCTION tww_app.vw_wwtp_structure_insert() + RETURNS trigger AS +$BODY$ +BEGIN + INSERT INTO tww_od.wastewater_structure ( + obj_id + , accessibility + , contract_section + , detail_geometry_geometry + , financing + , gross_costs + , identifier + , inspection_interval + , location_name + , records + , remark + , renovation_necessity + , replacement_value + , rv_base_year + , rv_construction_type + , status + , structure_condition + , subsidies + , year_of_construction + , year_of_replacement + , fk_dataowner + , fk_provider + , last_modification + , fk_owner + , fk_operator + ) + VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','wwtp_structure')) -- obj_id + , NEW.accessibility + , NEW.contract_section + , NEW.detail_geometry_geometry + , NEW.financing + , NEW.gross_costs + , NEW.identifier + , NEW.inspection_interval + , NEW.location_name + , NEW.records + , NEW.remark + , NEW.renovation_necessity + , NEW.replacement_value + , NEW.rv_base_year + , NEW.rv_construction_type + , NEW.status + , NEW.structure_condition + , NEW.subsidies + , NEW.year_of_construction + , NEW.year_of_replacement + , NEW.fk_dataowner + , NEW.fk_provider + , NEW.last_modification + , NEW.fk_owner + , NEW.fk_operator + ) + RETURNING obj_id INTO NEW.obj_id; + +INSERT INTO tww_od.wwtp_structure ( + obj_id + , kind + ) + VALUES ( + NEW.obj_id -- obj_id + , NEW.kind + ); + RETURN NEW; +END; $BODY$ + LANGUAGE plpgsql VOLATILE + COST 100; + +-- DROP TRIGGER vw_wwtp_structure_ON_INSERT ON tww_od.wwtp_structure; + +CREATE TRIGGER vw_wwtp_structure_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_wwtp_structure + FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_wwtp_structure_insert(); + +----------------------------------- +-- wwtp_structure UPDATE +-- Rule: vw_wwtp_structure_ON_UPDATE() +----------------------------------- + +CREATE OR REPLACE RULE vw_wwtp_structure_ON_UPDATE AS ON UPDATE TO tww_app.vw_wwtp_structure DO INSTEAD ( +UPDATE tww_od.wwtp_structure + SET + kind = NEW.kind + WHERE obj_id = OLD.obj_id; + +UPDATE tww_od.wastewater_structure + SET + accessibility = NEW.accessibility + , contract_section = NEW.contract_section + , detail_geometry_geometry = NEW.detail_geometry_geometry + , financing = NEW.financing + , gross_costs = NEW.gross_costs + , identifier = NEW.identifier + , inspection_interval = NEW.inspection_interval + , location_name = NEW.location_name + , records = NEW.records + , remark = NEW.remark + , renovation_necessity = NEW.renovation_necessity + , replacement_value = NEW.replacement_value + , rv_base_year = NEW.rv_base_year + , rv_construction_type = NEW.rv_construction_type + , status = NEW.status + , structure_condition = NEW.structure_condition + , subsidies = NEW.subsidies + , year_of_construction = NEW.year_of_construction + , year_of_replacement = NEW.year_of_replacement + , fk_dataowner = NEW.fk_dataowner + , fk_provider = NEW.fk_provider + , last_modification = NEW.last_modification + , fk_owner = NEW.fk_owner + , fk_operator = NEW.fk_operator + WHERE obj_id = OLD.obj_id; +); + +----------------------------------- +-- wwtp_structure DELETE +-- Rule: vw_wwtp_structure_ON_DELETE () +----------------------------------- + +CREATE OR REPLACE RULE vw_wwtp_structure_ON_DELETE AS ON DELETE TO tww_app.vw_wwtp_structure DO INSTEAD ( + DELETE FROM tww_od.wwtp_structure WHERE obj_id = OLD.obj_id; + DELETE FROM tww_od.wastewater_structure WHERE obj_id = OLD.obj_id; +); From 9c4e1aa5b422eed48211a40fec84cc3d9fe209e7 Mon Sep 17 00:00:00 2001 From: SJiB Date: Mon, 11 Dec 2023 16:02:52 +0100 Subject: [PATCH 3/9] id instead of obj_id in re_tables --- datamodel/changelogs/0001/03_tww_db_dss.sql | 40 +++++++++++---------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/datamodel/changelogs/0001/03_tww_db_dss.sql b/datamodel/changelogs/0001/03_tww_db_dss.sql index feec53bdd..bd5d2aaa1 100644 --- a/datamodel/changelogs/0001/03_tww_db_dss.sql +++ b/datamodel/changelogs/0001/03_tww_db_dss.sql @@ -1,6 +1,6 @@ ------ This file generates the VSA-DSS database (Modul VSA-DSS (2020)) in en on QQIS ------ For questions etc. please contact Stefan Burckhardt stefan.burckhardt@sjib.ch ------- version 21.11.2023 17:42:42 +------ version 11.12.2023 15:52:18 ------ with 3D coordinates --------------------------- @@ -24,31 +24,31 @@ CONSTRAINT pkey_tww_value_list_code PRIMARY KEY (code) ) WITH ( OIDS = False -); +); ------- CREATE TABLE tww_od.re_building_group_disposal ( - obj_id varchar(16) NOT NULL, - CONSTRAINT pkey_tww_od_re_building_group_disposal_obj_id PRIMARY KEY (obj_id) -) -WITH ( - OIDS = False + id uuid NOT NULL DEFAULT uuid_generate_v4(), + CONSTRAINT pkey_tww_od_re_building_group_disposal_id PRIMARY KEY (id) + + + ); -CREATE SEQUENCE tww_od.seq_re_building_group_disposal_oid INCREMENT 1 MINVALUE 0 MAXVALUE 999999 START 0; - ALTER TABLE tww_od.re_building_group_disposal ALTER COLUMN obj_id SET DEFAULT tww_sys.generate_oid('tww_od','re_building_group_disposal'); -COMMENT ON COLUMN tww_od.re_building_group_disposal.obj_id IS 'INTERLIS STANDARD OID (with Postfix/Präfix), see www.interlis.ch'; + + +COMMENT ON COLUMN tww_od.re_building_group_disposal.id IS 'UUID generated with uuid_generate_v4 see https://www.postgresql.org/docs/16/uuid-ossp.html#UUID-OSSP-FUNCTIONS-SECT'; ------- CREATE TABLE tww_od.re_maintenance_event_wastewater_structure ( - obj_id varchar(16) NOT NULL, - CONSTRAINT pkey_tww_od_re_maintenance_event_wastewater_structure_obj_id PRIMARY KEY (obj_id) -) -WITH ( - OIDS = False + id uuid NOT NULL DEFAULT uuid_generate_v4(), + CONSTRAINT pkey_tww_od_re_maintenance_event_wastewater_structure_id PRIMARY KEY (id) + + + ); -CREATE SEQUENCE tww_od.seq_re_maintenance_event_wastewater_structure_oid INCREMENT 1 MINVALUE 0 MAXVALUE 999999 START 0; - ALTER TABLE tww_od.re_maintenance_event_wastewater_structure ALTER COLUMN obj_id SET DEFAULT tww_sys.generate_oid('tww_od','re_maintenance_event_wastewater_structure'); -COMMENT ON COLUMN tww_od.re_maintenance_event_wastewater_structure.obj_id IS 'INTERLIS STANDARD OID (with Postfix/Präfix), see www.interlis.ch'; + + +COMMENT ON COLUMN tww_od.re_maintenance_event_wastewater_structure.id IS 'UUID generated with uuid_generate_v4 see https://www.postgresql.org/docs/16/uuid-ossp.html#UUID-OSSP-FUNCTIONS-SECT'; ------- CREATE TABLE tww_od.txt_symbol ( @@ -1176,7 +1176,7 @@ COMMENT ON COLUMN tww_od.reach.clear_height IS 'Clear height (inside) of profile ALTER TABLE tww_od.reach ADD COLUMN coefficient_of_friction smallint ; COMMENT ON COLUMN tww_od.reach.coefficient_of_friction IS 'yyy http://www.linguee.com/english-german/search?source=auto&query=reibungsbeiwert / Hydraulische Kenngrösse zur Beschreibung der Beschaffenheit der Kanalwandung. Beiwert für die Formeln nach Manning-Strickler (K oder kstr) / Constante de rugosité selon Manning-Strickler (K ou kstr)'; ALTER TABLE tww_od.reach ADD COLUMN elevation_determination integer ; -COMMENT ON COLUMN tww_od.reach.elevation_determination IS 'Defines the elevation_determination of the reach. / Definiert die Hoehenbestimmung einer Haltung. / Définition de la détermination altimétrique d''un tronçon.'; +COMMENT ON COLUMN tww_od.reach.elevation_determination IS 'Defines the elevation_determination of the reach (progression3D). / Definiert die Hoehenbestimmung einer Haltung (Verlauf3D). / Définition de la détermination altimétrique d''un tronçon (TRACE3D).'; ALTER TABLE tww_od.reach ADD COLUMN flow_time_dry_weather decimal(7,0) ; COMMENT ON COLUMN tww_od.reach.flow_time_dry_weather IS 'Flow time in dry weather (daily mean) / Fliesszeit bei Trockenwetter (Tagesmittel) / Temps d''écoulement par temps sec (moyenne journalière)'; ALTER TABLE tww_od.reach ADD COLUMN horizontal_positioning integer ; @@ -5225,3 +5225,5 @@ ALTER TABLE tww_od.farm ADD CONSTRAINT rel_od_farm_fk_dataprovider FOREIGN KEY ( CREATE UNIQUE INDEX in_od_hydraulic_char_data_identifier ON tww_od.hydraulic_char_data USING btree (identifier ASC NULLS LAST, fk_dataowner ASC NULLS LAST); CREATE UNIQUE INDEX in_od_catchment_area_totals_identifier ON tww_od.catchment_area_totals USING btree (identifier ASC NULLS LAST, fk_dataowner ASC NULLS LAST); CREATE UNIQUE INDEX in_od_building_group_identifier ON tww_od.building_group USING btree (identifier ASC NULLS LAST, fk_dataowner ASC NULLS LAST); + + From c93659cae562ac963fbeb80168aaad4a2a6d9f8b Mon Sep 17 00:00:00 2001 From: SJiB Date: Mon, 11 Dec 2023 16:12:14 +0100 Subject: [PATCH 4/9] Shortcut drainless_toilett changed from TO to TA and description for reach.elevation_determination adapted Shortcut drainless_toilett changed from TO to TA and description for reach.elevation_determination adapte --- .../changelogs/0001/09_tww_dictionaries.sql | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/datamodel/changelogs/0001/09_tww_dictionaries.sql b/datamodel/changelogs/0001/09_tww_dictionaries.sql index 7bb30b1b9..01a246ee8 100644 --- a/datamodel/changelogs/0001/09_tww_dictionaries.sql +++ b/datamodel/changelogs/0001/09_tww_dictionaries.sql @@ -1,8 +1,16 @@ ------ this file generates the tww is_dictionary (Modul dss(2020)) in en on TEKSI ------ For questions etc. please contact Stefan Burckhardt stefan.burckhardt@sjib.ch ------- version 21.11.2023 17:43:37 +------ version 11.12.2023 15:54:17 ------ with 3D coordinates +DROP VIEW IF EXISTS tww_sys.dictionary_value_list; + +CREATE VIEW tww_sys.dictionary_value_list AS + SELECT p.relname AS vl_name, vl.* + FROM tww_vl.value_list_base vl, pg_class p + WHERE vl.tableoid = p.oid; + + CREATE TABLE tww_sys.dictionary_od_table ( id integer NOT NULL, @@ -76,7 +84,7 @@ ALTER TABLE tww_sys.dictionary_od_table ADD CONSTRAINT unq_tww_is_dictonary_name INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (6103,'small_treatment_plant','small treatment plant','SM','KLARA','KL','Petite STEP','PS','Piccolo IDA','NULL','rrr_KLARA','NULL'); INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (6105,'building_group_baugwr','building group baugwr','BW','Gebäudegruppe BAUGWR','BA','Bâtiment BAUREGBL','BR','Gruppo costruzione BAUREA','NULL','rrr_Gebaeudegruppe_BAUGWR','NULL'); INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (6106,'disposal','disposal','DI','Entsorgung','NG','Evacuation','ON','Smaltimento','NULL','rrr_Entsorgung','NULL'); - INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (6107,'drainless_toilet','toilet','TO','Abflusslose Toilette','TO','Toilette sans vidange','TO','Toilette senza scarico','NULL','rrr_Abflusslose_Toilette','NULL'); + INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (6107,'drainless_toilet','toilet','DT','Abflusslose Toilette','TA','Toilette sans vidange','DT','Toilette senza scarico','DT','rrr_Abflusslose_Toilette','DT'); INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (62,'dryweather_flume','dryweather flume','DF','Trockenwetterrinne','TR','Cunette de débit temps sec','CU','Canaletta per tempo secco','NULL','albie minora','NULL'); INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (63,'overflow','overflow','OV','Überlauf','UE','Déversoir','DE','Stramazzo','NULL','rrr_Ueberlauf','NULL'); INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (64,'overflow_char','overflow characteristic','OC','Überlaufcharakteristik','UC','Caractéristiques du déversoir','CD','Caratteristiche del stramazzo','NULL','rrr_Ueberlaufcharakteristik','NULL'); @@ -116,7 +124,7 @@ ALTER TABLE tww_sys.dictionary_od_table ADD CONSTRAINT unq_tww_is_dictonary_name INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (99980,'txt_text','TEXT','TX','Text','TX','Texte','TX','Testo','TX','rrr_TEXT','TX'); INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (99981,'txt_symbol','SYMBOL','SX','Symbol','SX','Symbole','SX','Simbolo','SX','rrr_SYMBOL','SX'); INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (99982,'re_maintenance_event_wastewater_structure','maintenance event wastewater structure','MW','Erhaltungsereignis Abwasserbauwerk','RA','Evénement de maintenance Ouvrage réseau AS','EZ','zzz_evento_di_mantenimento_manufatto_smaltimento_acque','NULL','rrr_Erhaltungsereignis_structura_canalizare','NULL'); - INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (99985,'re_building_group_disposal','building group disposal','ZZ','Gebaeudegruppe Entsorgung','ZZ','Bâtiments Evacuation','ZZ','Gruppo costruzione smaltimento','NULL','rrr_Gebaeudegruppe_Entsorgung','NULL'); + INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (99985,'re_building_group_disposal','building group disposal','ZZ','Gebaeudegruppe Entsorgung','ZZ','Bâtiments Evacuation','ZZ','Gruppo costruzione smaltimento','ZZ','rrr_Gebaeudegruppe_Entsorgung','ZZ'); INSERT INTO tww_sys.dictionary_od_table (id, tablename, name_en, shortcut_en, name_de, shortcut_de, name_fr, shortcut_fr, name_it, shortcut_it, name_ro, shortcut_ro) VALUES (99986,'progression_alternative','progression alternative','AX','Alternativ Verlauf','AX','Trace alternative','AX','Tracciato alternativo','AX','rrr_Alternativverlauf','AX'); DROP TYPE IF EXISTS tww_od.plantype; @@ -350,7 +358,7 @@ CREATE TABLE tww_sys.dictionary_od_field ( INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (3,999996,'waste_water_treatment','last_modification','last_modification','Letzte_Aenderung','DERNIERE_MODIFICATION','ultima_modifica','rrr_Letze_Aenderung','Last modification: INTERLIS_1_DATE','Letzte Änderung: INTERLIS_1_DATE','Dernière modification: INTERLIS_1_DATE','ultima_modifica: INTERLIS_1_DATE','rrr_Letzte Änderung: INTERLIS_1_DATE',ARRAY['Werkinformation','Leitungskataster', 'GEP_Verband','GEP_Traegerschaft','SAA', 'PAA']::tww_od.plantype[],'true','TIMESTAMP','','','','','','','','','','',NULL,NULL); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,6404,'reach','clear_height','clear_height','Lichte_Hoehe','HAUTEUR_MAX_PROFIL','altezza_profilo','inaltime_senina','Clear height (inside) of profile. Installed liners are not to be considered (-> Reliner_nominal width)','Maximale Innenhöhe des Rohrprofiles. Eingebaute Liner sind nicht zu berücksichtigen -> Reliner_Nennweite).','Hauteur interne maximale du profil du tube. Les revêtements installés ne doivent pas être pris en compte (-> Reliner_largeur nominale.).','Altezza interna massima del profilo del tubo. I liners installati non sono da considerare (-> Reliner_Nennweite).','Înal?imea interna maxima a profilului conductei. Garniturile încorporate nu trebuie luate în considerare (-> Dimensiunea nominala a relator)',ARRAY['Leitungskataster','Werkinformation','GEP_Verband','PAA','GEP_Traegerschaft','SAA']::tww_od.plantype[],'true','integer','[mm]','millimeter [mm]','[mm]','Millimeter [mm]','[mm]','milimètre [mm]','[mm]','millimetro [mm]','[mm]','rrr_Millimeter [mm]',0,99999); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,128,'reach','coefficient_of_friction','coefficient_of_friction','Reibungsbeiwert','K_STRICKLER','zzz_Reibungsbeiwert','coeficient_frecare','yyy http://www.linguee.com/english-german/search?source=auto&query=reibungsbeiwert','Hydraulische Kenngrösse zur Beschreibung der Beschaffenheit der Kanalwandung. Beiwert für die Formeln nach Manning-Strickler (K oder kstr)','Constante de rugosité selon Manning-Strickler (K ou kstr)','zzz_Hydraulische Kenngrösse zur Beschreibung der Beschaffenheit der Kanalwandung. Beiwert für die Formeln nach Manning-Strickler (K oder kstr)','Coeficientul de frecare',ARRAY['Werkinformation']::tww_od.plantype[],'true','smallint','[m^(1/3)/s]','Manning-Strickler K or kstr [m^(1/3)/s]','[m^(1/3)/s]','Manning-Strickler K oder kstr [m^(1/3)/s]','[m^(1/3)/s]','Coefficient de rugosité selon Manning-Strickler (K ou kstr) [m^(1/3)/s]','[m^(1/3)/s]','Unità Manning-Strickler K o kstr [m^(1/3)/s]','[m^(1/3)/s]','rrr_Manning-Strickler K oder kstr [m^(1/3)/s]',0,999); - INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,4777,'reach','elevation_determination','elevation_determination','Hoehenbestimmung','DETERMINATION_ALTIMETRIQUE','determinazione_dell_altezza','determinare_altimetrica','Defines the elevation_determination of the reach.','Definiert die Hoehenbestimmung einer Haltung.','Définition de la détermination altimétrique d''un tronçon.','zzz_Definisce il determinazione dell''altezza del zzz.','Define?te înal?imea',ARRAY['Leitungskataster','Werkinformation','GEP_Traegerschaft','PAA','SAA']::tww_od.plantype[],'true','integer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); + INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,4777,'reach','elevation_determination','elevation_determination','Hoehenbestimmung','DETERMINATION_ALTIMETRIQUE','determinazione_dell_altezza','determinare_altimetrica','Defines the elevation_determination of the reach (progression3D).','Definiert die Hoehenbestimmung einer Haltung (Verlauf3D).','Définition de la détermination altimétrique d''un tronçon (TRACE3D).','zzz_Definisce il determinazione dell''altezza del tratta (tracciato3D).','rrr_Define?te înal?imea einer Haltung (traseu3d)',ARRAY['Leitungskataster','Werkinformation','GEP_Traegerschaft','PAA','SAA']::tww_od.plantype[],'true','integer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,8728,'reach','flow_time_dry_weather','flow_time_dry_weather','Fliesszeit_Trockenwetter','TEMPS_D_ECOULEMENT_TEMPS_SEC','zzz_Fliesszeit_Trockenwetter','rrr_Fliesszeit_Trockenwetter','Flow time in dry weather (daily mean)','Fliesszeit bei Trockenwetter (Tagesmittel)','Temps d''écoulement par temps sec (moyenne journalière)','zzz_empo di flusso in tempo secco (media giornaliera)','rrr_Fliesszeit bei Trockenwetter (Tagesmittel)',ARRAY['Werkinformation','GEP_Verband','GEP_Traegerschaft','PAA','SAA']::tww_od.plantype[],'true','decimal(7,0)','[s]','seconds [s]','[s]','Sekunden [s]','[s]','secondes [s]','[s]','seconde [s]','[s]','rrr_Sekunden [s]',0,1000000); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,3629,'reach','horizontal_positioning','horizontal_positioning','Lagebestimmung','DETERMINATION_PLANIMETRIQUE','precisione_planimetrica','determinare_planimetrica','yyy_Definiert die Lagegenauigkeit der Verlaufspunkte.','Definiert die Lagegenauigkeit der Verlaufspunkte.','Définit la précision de la détermination du tracé.','Definisce la precisione planimetrica del tracciato','Determinare planimetrica',ARRAY['Leitungskataster','Werkinformation','GEP_Traegerschaft','PAA','SAA']::tww_od.plantype[],'true','integer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,9158,'reach','hydraulic_load_current','hydraulic_load_current','Hydr_Belastung_Ist','CHARGE_HYDR_ACTUELLE','carico_idraulico_attuale','rrr_Hydr_Belastung_Ist','Dimensioning of the discharge divided by the normal discharge capacity of the reach [%].','Dimensionierungsabfluss geteilt durch Normalabflusskapazität der Leitung [%].','Débit de dimensionnement divisé par la capacité d''écoulement normale de la conduite [%].','Deflusso di dimensionamento diviso per la capacità di deflusso normale della condotta [%]','rrr_Dimensionierungsabfluss geteilt durch Normalabflusskapazität der Leitung [%].',ARRAY['Werkinformation','GEP_Verband','PAA','GEP_Traegerschaft','SAA']::tww_od.plantype[],'true','smallint','[%]','percent [%]','[%]','Prozent [%]','[%]','pourcent [%]','[%]','percento [%]','[%]','rrr_Prozent [%]',0,1000); @@ -359,7 +367,7 @@ CREATE TABLE tww_sys.dictionary_od_field ( INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,144,'reach','length_effective','length_effective','LaengeEffektiv','L_EFFECTIVE','lunghezza_effettiva','lungime_efectiva','yyy_Tatsächliche schräge Länge (d.h. nicht in horizontale Ebene projiziert) inklusive Kanalkrümmungen','Tatsächliche schräge Länge (d.h. nicht in horizontale Ebene projiziert) inklusive Kanalkrümmungen','Longueur effective (non projetée) incluant les parties incurvées','Lunghezza obliqua effettiva (non proiettata) incluso le curve del canale','Lungime efectiva',ARRAY['Werkinformation','GEP_Verband','PAA','GEP_Traegerschaft','SAA']::tww_od.plantype[],'true','decimal(7,2)','[m]','meter [m], 2 decimal digits','[m]','Meter [m], 2 Dezimalstellen','[m]','mètres [m], 2 décimals','[m]','metro [m], 2 decimale','[m]','rrr_Meter [m], 2 Dezimalstellen',0,30000); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,156,'reach','material','material','Material','MATERIAU','materiale','material','Material of reach / pipe','Rohrmaterial','Matériau du tuyau','Materiale del tubo','Material',ARRAY['Werkinformation','GEP_Traegerschaft','PAA','GEP_Verband','SAA']::tww_od.plantype[],'true','integer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,2233,'reach','progression','progression','Verlauf','TRACE','tracciato','traseu','Start, inflextion and endpoints of a pipe','Anfangs-, Knick- und Endpunkte der Leitung','Points de départ, intermédiaires et d’arrivée de la conduite.','Punti di partenza, intermedi e finali della canalizzazione','Startul/inflexiunile/capetele unei conducte',ARRAY['Leitungskataster','Werkinformation','GEP_Verband','PAA','GEP_Traegerschaft','SAA']::tww_od.plantype[],'true','geometry',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); - INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,5060,'reach','progression3d','progression3d','Verlauf3D','TRACE3D','tracciato3D','traseu_3d','Start, inflextion and endpoints of a pipe (3D coordinates)','Anfangs-, Knick- und Endpunkte der Leitung (3D Koordinaten)','Points de départ, intermédiaires et d’arrivée de la conduite (coordonnées 3D)','Punti di partenza, intermedi e finali della canalizzazione (coordinare 3D)','Startul/inflexiunile/capetele unei conducte (3D)',ARRAY['Leitungskataster','Werkinformation','GEP_Verband','PAA','GEP_Traegerschaft','SAA']::tww_od.plantype[],'true','geometry','[HKoord]','points with coordinates in the swiss national grid','[HKoord]','Punkte mit Schweizer Landeskoordinaten [HKoord]','[CoordH]','points avec coordonnées dans le système de coordonnées suisse','[HKoord]','Punti con coordinate nazionali svizzere','[HKoord]','rrr_Punkte mit Schweizer Landeskoordinaten',NULL,NULL); + INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,5060,'reach','progression3d','progression3d','Verlauf3D','TRACE3D','tracciato3D','traseu3d','Start, inflextion and endpoints of a pipe (3D coordinates)','Anfangs-, Knick- und Endpunkte der Leitung (3D Koordinaten)','Points de départ, intermédiaires et d’arrivée de la conduite (coordonnées 3D)','Punti di partenza, intermedi e finali della canalizzazione (coordinare 3D)','Startul/inflexiunile/capetele unei conducte (3D)',ARRAY['Leitungskataster','Werkinformation','GEP_Verband','PAA','GEP_Traegerschaft','SAA']::tww_od.plantype[],'true','geometry','[HKoord]','points with coordinates in the swiss national grid','[HKoord]','Punkte mit Schweizer Landeskoordinaten [HKoord]','[CoordH]','points avec coordonnées dans le système de coordonnées suisse','[HKoord]','Punti con coordinate nazionali svizzere','[HKoord]','rrr_Punkte mit Schweizer Landeskoordinaten',NULL,NULL); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,6458,'reach','reliner_material','reliner_material','Reliner_Material','RELINING_MATERIAUX','zzz_Reliner_Material','material_reconditionare','Material of reliner','Material des Reliners','Materiaux du relining','zzz_Material des Reliners','Material recondi?ionare',ARRAY['Werkinformation']::tww_od.plantype[],'true','integer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,6470,'reach','reliner_nominal_size','reliner_nominal_size','Reliner_Nennweite','RELINER_DIAMETRE_NOMINALE','dimensione_nominale_del_rele','diametru_nominal_reconditionare','Clear height with installed liner (= clear height of the original pipe profile minus twice the wall thickness of the liner).','Lichte Höhe mit eingebautem Liner (=Lichte Höhe des ursprünglichen Rohrprofils minus doppelte Wandstärke des Liners).','Hauteur libre avec revêtement installé (= hauteur libre du profilé d''origine du tuyau moins deux fois l''épaisseur de la paroi du revêtement).','Altezza libera con il liner installato (= altezza libera del profilo del tubo originale meno il doppio dello spessore della parete del liner).','Înal?imea limpede cu captu?eala încorporata (= înal?imea libera a profilului ini?ial de ?eava minus de doua ori grosimea peretelui captu?elii).',ARRAY['Werkinformation','GEP_Traegerschaft','PAA','GEP_Verband','SAA']::tww_od.plantype[],'true','integer','[mm]','millimeter [mm]','[mm]','Millimeter [mm]','[mm]','milimètre [mm]','[mm]','millimetro [mm]','[mm]','rrr_Millimeter [mm]',0,99999); INSERT INTO tww_sys.dictionary_od_field (class_id, attribute_id, table_name, field_name, field_name_en, field_name_de, field_name_fr, field_name_it, field_name_ro, field_description_en, field_description_de, field_description_fr, field_description_it, field_description_ro, field_mandatory, field_visible, field_datatype, field_unit_en, field_unit_description_en, field_unit_de, field_unit_description_de, field_unit_fr, field_unit_description_fr, field_unit_it, field_unit_description_it, field_unit_ro, field_unit_description_ro, field_max, field_min) VALUES (31,6447,'reach','relining_construction','relining_construction','Reliner_Bautechnik','RELINING_TECHNIQUE','zzz_Reliner_Bautechnik','tehnica_reconditionare','yyy_Bautechnik für das Relining. Zusätzlich wird der Einbau des Reliners als Erhaltungsereignis abgebildet: Erhaltungsereignis.Art = Reparatur für Partieller_Liner, sonst Renovierung.','Bautechnik für das Relining. Zusätzlich wird der Einbau des Reliners als Erhaltungsereignis abgebildet: Erhaltungsereignis.Art = Reparatur für Partieller_Liner, sonst Renovierung.','Relining technique de construction. En addition la construction du reliner doit être modeler comme événement maintenance: Genre = reparation pour liner_partiel, autrement genre = renovation.','zzz_Bautechnik für das Relining. Zusätzlich wird der Einbau des Reliners als Erhaltungsereignis abgebildet: Erhaltungsereignis.Art = Reparatur für Partieller_Liner, sonst Renovierung.','Tehnica recondi?ionare',ARRAY['Werkinformation']::tww_od.plantype[],'true','integer',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); From 9f50a9461bfd9515e850318d59a6627095df2963 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 15:12:26 +0000 Subject: [PATCH 5/9] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- datamodel/changelogs/0001/03_tww_db_dss.sql | 24 ++++++++++----------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/datamodel/changelogs/0001/03_tww_db_dss.sql b/datamodel/changelogs/0001/03_tww_db_dss.sql index bd5d2aaa1..05410b02e 100644 --- a/datamodel/changelogs/0001/03_tww_db_dss.sql +++ b/datamodel/changelogs/0001/03_tww_db_dss.sql @@ -24,30 +24,30 @@ CONSTRAINT pkey_tww_value_list_code PRIMARY KEY (code) ) WITH ( OIDS = False -); +); ------- CREATE TABLE tww_od.re_building_group_disposal ( id uuid NOT NULL DEFAULT uuid_generate_v4(), CONSTRAINT pkey_tww_od_re_building_group_disposal_id PRIMARY KEY (id) - - - + + + ); - - + + COMMENT ON COLUMN tww_od.re_building_group_disposal.id IS 'UUID generated with uuid_generate_v4 see https://www.postgresql.org/docs/16/uuid-ossp.html#UUID-OSSP-FUNCTIONS-SECT'; ------- CREATE TABLE tww_od.re_maintenance_event_wastewater_structure ( id uuid NOT NULL DEFAULT uuid_generate_v4(), CONSTRAINT pkey_tww_od_re_maintenance_event_wastewater_structure_id PRIMARY KEY (id) - - - + + + ); - - + + COMMENT ON COLUMN tww_od.re_maintenance_event_wastewater_structure.id IS 'UUID generated with uuid_generate_v4 see https://www.postgresql.org/docs/16/uuid-ossp.html#UUID-OSSP-FUNCTIONS-SECT'; ------- CREATE TABLE tww_od.txt_symbol @@ -5225,5 +5225,3 @@ ALTER TABLE tww_od.farm ADD CONSTRAINT rel_od_farm_fk_dataprovider FOREIGN KEY ( CREATE UNIQUE INDEX in_od_hydraulic_char_data_identifier ON tww_od.hydraulic_char_data USING btree (identifier ASC NULLS LAST, fk_dataowner ASC NULLS LAST); CREATE UNIQUE INDEX in_od_catchment_area_totals_identifier ON tww_od.catchment_area_totals USING btree (identifier ASC NULLS LAST, fk_dataowner ASC NULLS LAST); CREATE UNIQUE INDEX in_od_building_group_identifier ON tww_od.building_group USING btree (identifier ASC NULLS LAST, fk_dataowner ASC NULLS LAST); - - From 934b15375a81533b8fe9ff39af655aa4d3ecac23 Mon Sep 17 00:00:00 2001 From: SJiB Date: Tue, 12 Dec 2023 12:01:09 +0100 Subject: [PATCH 6/9] Take out views --- .../heritage_dss2015/vw_building.sql | 123 ---------- .../vw_electric_equipment.sql | 111 --------- .../vw_electromechanical_equipment.sql | 111 --------- .../heritage_dss2015/vw_fountain.sql | 115 --------- .../vw_infiltration_installation.sql | 218 ------------------ .../heritage_dss2015/vw_param_ca_general.sql | 131 ----------- .../heritage_dss2015/vw_param_ca_mouse1.sql | 135 ----------- .../heritage_dss2015/vw_reach_relining.sql | 29 --- .../heritage_dss2015/vw_reservoir.sql | 115 --------- .../heritage_dss2015/vw_solids_retention.sql | 119 ---------- .../heritage_dss2015/vw_tank_cleaning.sql | 111 --------- .../heritage_dss2015/vw_tank_emptying.sql | 115 --------- .../vw_tww_maintenance_on_reach.sql | 40 ---- .../vw_tww_maintenance_on_wws.sql | 37 --- .../heritage_dss2015/vw_wwtp_structure.sql | 170 -------------- 15 files changed, 1680 deletions(-) delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_building.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_electric_equipment.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_electromechanical_equipment.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_fountain.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_infiltration_installation.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_general.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_mouse1.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_reach_relining.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_reservoir.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_solids_retention.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tank_cleaning.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tank_emptying.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_reach.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_wws.sql delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_wwtp_structure.sql diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_building.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_building.sql deleted file mode 100644 index abc2f2e54..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_building.sql +++ /dev/null @@ -1,123 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_building; - - --------- --- Subclass: building --- Superclass: connection_object --------- -CREATE OR REPLACE VIEW tww_app.vw_building AS - -SELECT - BU.obj_id - , BU.house_number - , BU.location_name - , BU.perimeter_geometry - , BU.reference_point_geometry - , CN.identifier - , CN.remark - , CN.sewer_infiltration_water_production - , CN.fk_dataowner - , CN.fk_provider - , CN.last_modification - , CN.fk_wastewater_networkelement - , CN.fk_owner - , CN.fk_operator - FROM tww_od.building BU - LEFT JOIN tww_od.connection_object CN - ON CN.obj_id = BU.obj_id; - ------------------------------------ --- building INSERT --- Function: vw_building_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_building_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.connection_object ( - obj_id - , identifier - , remark - , sewer_infiltration_water_production - , fk_dataowner - , fk_provider - , last_modification - , fk_wastewater_networkelement - , fk_owner - , fk_operator - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','building')) -- obj_id - , NEW.identifier - , NEW.remark - , NEW.sewer_infiltration_water_production - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_wastewater_networkelement - , NEW.fk_owner - , NEW.fk_operator - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.building ( - obj_id - , house_number - , location_name - , perimeter_geometry - , reference_point_geometry - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.house_number - , NEW.location_name - , NEW.perimeter_geometry - , NEW.reference_point_geometry - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_building_ON_INSERT ON tww_od.building; - -CREATE TRIGGER vw_building_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_building - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_building_insert(); - ------------------------------------ --- building UPDATE --- Rule: vw_building_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_building_ON_UPDATE AS ON UPDATE TO tww_app.vw_building DO INSTEAD ( -UPDATE tww_od.building - SET - house_number = NEW.house_number - , location_name = NEW.location_name - , perimeter_geometry = NEW.perimeter_geometry - , reference_point_geometry = NEW.reference_point_geometry - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.connection_object - SET - identifier = NEW.identifier - , remark = NEW.remark - , sewer_infiltration_water_production = NEW.sewer_infiltration_water_production - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_wastewater_networkelement = NEW.fk_wastewater_networkelement - , fk_owner = NEW.fk_owner - , fk_operator = NEW.fk_operator - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- building DELETE --- Rule: vw_building_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_building_ON_DELETE AS ON DELETE TO tww_app.vw_building DO INSTEAD ( - DELETE FROM tww_od.building WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.connection_object WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_electric_equipment.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_electric_equipment.sql deleted file mode 100644 index 2f805f270..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_electric_equipment.sql +++ /dev/null @@ -1,111 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_electric_equipment; - - --------- --- Subclass: electric_equipment --- Superclass: structure_part --------- -CREATE OR REPLACE VIEW tww_app.vw_electric_equipment AS - -SELECT - EE.obj_id - , EE.gross_costs - , EE.kind - , EE.year_of_replacement - , SP.identifier - , SP.remark - , SP.renovation_demand - , SP.fk_dataowner - , SP.fk_provider - , SP.last_modification - , SP.fk_wastewater_structure - FROM tww_od.electric_equipment EE - LEFT JOIN tww_od.structure_part SP - ON SP.obj_id = EE.obj_id; - ------------------------------------ --- electric_equipment INSERT --- Function: vw_electric_equipment_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_electric_equipment_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.structure_part ( - obj_id - , identifier - , remark - , renovation_demand - , fk_dataowner - , fk_provider - , last_modification - , fk_wastewater_structure - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','electric_equipment')) -- obj_id - , NEW.identifier - , NEW.remark - , NEW.renovation_demand - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_wastewater_structure - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.electric_equipment ( - obj_id - , gross_costs - , kind - , year_of_replacement - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.gross_costs - , NEW.kind - , NEW.year_of_replacement - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_electric_equipment_ON_INSERT ON tww_od.electric_equipment; - -CREATE TRIGGER vw_electric_equipment_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_electric_equipment - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_electric_equipment_insert(); - ------------------------------------ --- electric_equipment UPDATE --- Rule: vw_electric_equipment_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_electric_equipment_ON_UPDATE AS ON UPDATE TO tww_app.vw_electric_equipment DO INSTEAD ( -UPDATE tww_od.electric_equipment - SET - gross_costs = NEW.gross_costs - , kind = NEW.kind - , year_of_replacement = NEW.year_of_replacement - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.structure_part - SET - identifier = NEW.identifier - , remark = NEW.remark - , renovation_demand = NEW.renovation_demand - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_wastewater_structure = NEW.fk_wastewater_structure - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- electric_equipment DELETE --- Rule: vw_electric_equipment_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_electric_equipment_ON_DELETE AS ON DELETE TO tww_app.vw_electric_equipment DO INSTEAD ( - DELETE FROM tww_od.electric_equipment WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_electromechanical_equipment.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_electromechanical_equipment.sql deleted file mode 100644 index 223cfe775..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_electromechanical_equipment.sql +++ /dev/null @@ -1,111 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_electromechanical_equipment; - - --------- --- Subclass: electromechanical_equipment --- Superclass: structure_part --------- -CREATE OR REPLACE VIEW tww_app.vw_electromechanical_equipment AS - -SELECT - EQ.obj_id - , EQ.gross_costs - , EQ.kind - , EQ.year_of_replacement - , SP.identifier - , SP.remark - , SP.renovation_demand - , SP.fk_dataowner - , SP.fk_provider - , SP.last_modification - , SP.fk_wastewater_structure - FROM tww_od.electromechanical_equipment EQ - LEFT JOIN tww_od.structure_part SP - ON SP.obj_id = EQ.obj_id; - ------------------------------------ --- electromechanical_equipment INSERT --- Function: vw_electromechanical_equipment_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_electromechanical_equipment_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.structure_part ( - obj_id - , identifier - , remark - , renovation_demand - , fk_dataowner - , fk_provider - , last_modification - , fk_wastewater_structure - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','electromechanical_equipment')) -- obj_id - , NEW.identifier - , NEW.remark - , NEW.renovation_demand - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_wastewater_structure - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.electromechanical_equipment ( - obj_id - , gross_costs - , kind - , year_of_replacement - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.gross_costs - , NEW.kind - , NEW.year_of_replacement - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_electromechanical_equipment_ON_INSERT ON tww_od.electromechanical_equipment; - -CREATE TRIGGER vw_electromechanical_equipment_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_electromechanical_equipment - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_electromechanical_equipment_insert(); - ------------------------------------ --- electromechanical_equipment UPDATE --- Rule: vw_electromechanical_equipment_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_electromechanical_equipment_ON_UPDATE AS ON UPDATE TO tww_app.vw_electromechanical_equipment DO INSTEAD ( -UPDATE tww_od.electromechanical_equipment - SET - gross_costs = NEW.gross_costs - , kind = NEW.kind - , year_of_replacement = NEW.year_of_replacement - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.structure_part - SET - identifier = NEW.identifier - , remark = NEW.remark - , renovation_demand = NEW.renovation_demand - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_wastewater_structure = NEW.fk_wastewater_structure - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- electromechanical_equipment DELETE --- Rule: vw_electromechanical_equipment_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_electromechanical_equipment_ON_DELETE AS ON DELETE TO tww_app.vw_electromechanical_equipment DO INSTEAD ( - DELETE FROM tww_od.electromechanical_equipment WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_fountain.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_fountain.sql deleted file mode 100644 index 7059770fd..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_fountain.sql +++ /dev/null @@ -1,115 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_fountain; - - --------- --- Subclass: fountain --- Superclass: connection_object --------- -CREATE OR REPLACE VIEW tww_app.vw_fountain AS - -SELECT - FO.obj_id - , FO.location_name - , FO.situation_geometry - , CN.identifier - , CN.remark - , CN.sewer_infiltration_water_production - , CN.fk_dataowner - , CN.fk_provider - , CN.last_modification - , CN.fk_wastewater_networkelement - , CN.fk_owner - , CN.fk_operator - FROM tww_od.fountain FO - LEFT JOIN tww_od.connection_object CN - ON CN.obj_id = FO.obj_id; - ------------------------------------ --- fountain INSERT --- Function: vw_fountain_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_fountain_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.connection_object ( - obj_id - , identifier - , remark - , sewer_infiltration_water_production - , fk_dataowner - , fk_provider - , last_modification - , fk_wastewater_networkelement - , fk_owner - , fk_operator - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','fountain')) -- obj_id - , NEW.identifier - , NEW.remark - , NEW.sewer_infiltration_water_production - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_wastewater_networkelement - , NEW.fk_owner - , NEW.fk_operator - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.fountain ( - obj_id - , location_name - , situation_geometry - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.location_name - , NEW.situation_geometry - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_fountain_ON_INSERT ON tww_od.fountain; - -CREATE TRIGGER vw_fountain_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_fountain - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_fountain_insert(); - ------------------------------------ --- fountain UPDATE --- Rule: vw_fountain_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_fountain_ON_UPDATE AS ON UPDATE TO tww_app.vw_fountain DO INSTEAD ( -UPDATE tww_od.fountain - SET - location_name = NEW.location_name - , situation_geometry = NEW.situation_geometry - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.connection_object - SET - identifier = NEW.identifier - , remark = NEW.remark - , sewer_infiltration_water_production = NEW.sewer_infiltration_water_production - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_wastewater_networkelement = NEW.fk_wastewater_networkelement - , fk_owner = NEW.fk_owner - , fk_operator = NEW.fk_operator - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- fountain DELETE --- Rule: vw_fountain_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_fountain_ON_DELETE AS ON DELETE TO tww_app.vw_fountain DO INSTEAD ( - DELETE FROM tww_od.fountain WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.connection_object WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_infiltration_installation.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_infiltration_installation.sql deleted file mode 100644 index 30fca72f3..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_infiltration_installation.sql +++ /dev/null @@ -1,218 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_infiltration_installation; - --------- --- Subclass: infiltration_installation --- Superclass: wastewater_structure --------- -CREATE OR REPLACE VIEW tww_app.vw_infiltration_installation AS - -SELECT - II.obj_id - , II.absorption_capacity - , II.defects - , II.dimension1 - , II.dimension2 - , II.distance_to_aquifer - , II.effective_area - , II.emergency_spillway - , II.kind - , II.labeling - , II.seepage_utilization - , II.upper_elevation - , II.vehicle_access - , II.watertightness - , WS.accessibility - , WS.contract_section - , WS.detail_geometry_geometry - , WS.financing - , WS.gross_costs - , WS.identifier - , WS.inspection_interval - , WS.location_name - , WS.records - , WS.remark - , WS.renovation_necessity - , WS.replacement_value - , WS.rv_base_year - , WS.rv_construction_type - , WS.status - , WS.structure_condition - , WS.subsidies - , WS.year_of_construction - , WS.year_of_replacement - , WS.fk_dataowner - , WS.fk_provider - , WS.last_modification - , WS.fk_owner - , WS.fk_operator - FROM tww_od.infiltration_installation II - LEFT JOIN tww_od.wastewater_structure WS - ON WS.obj_id = II.obj_id; - ------------------------------------ --- infiltration_installation INSERT --- Function: vw_infiltration_installation_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_infiltration_installation_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.wastewater_structure ( - obj_id - , accessibility - , contract_section - , detail_geometry_geometry - , financing - , gross_costs - , identifier - , inspection_interval - , location_name - , records - , remark - , renovation_necessity - , replacement_value - , rv_base_year - , rv_construction_type - , status - , structure_condition - , subsidies - , year_of_construction - , year_of_replacement - , fk_dataowner - , fk_provider - , last_modification - , fk_owner - , fk_operator - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','infiltration_installation')) -- obj_id - , NEW.accessibility - , NEW.contract_section - , NEW.detail_geometry_geometry - , NEW.financing - , NEW.gross_costs - , NEW.identifier - , NEW.inspection_interval - , NEW.location_name - , NEW.records - , NEW.remark - , NEW.renovation_necessity - , NEW.replacement_value - , NEW.rv_base_year - , NEW.rv_construction_type - , NEW.status - , NEW.structure_condition - , NEW.subsidies - , NEW.year_of_construction - , NEW.year_of_replacement - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_owner - , NEW.fk_operator - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.infiltration_installation ( - obj_id - , absorption_capacity - , defects - , dimension1 - , dimension2 - , distance_to_aquifer - , effective_area - , emergency_spillway - , kind - , labeling - , seepage_utilization - , upper_elevation - , vehicle_access - , watertightness - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.absorption_capacity - , NEW.defects - , NEW.dimension1 - , NEW.dimension2 - , NEW.distance_to_aquifer - , NEW.effective_area - , NEW.emergency_spillway - , NEW.kind - , NEW.labeling - , NEW.seepage_utilization - , NEW.upper_elevation - , NEW.vehicle_access - , NEW.watertightness - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_infiltration_installation_ON_INSERT ON tww_od.infiltration_installation; - -CREATE TRIGGER vw_infiltration_installation_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_infiltration_installation - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_infiltration_installation_insert(); - ------------------------------------ --- infiltration_installation UPDATE --- Rule: vw_infiltration_installation_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_infiltration_installation_ON_UPDATE AS ON UPDATE TO tww_app.vw_infiltration_installation DO INSTEAD ( -UPDATE tww_od.infiltration_installation - SET - absorption_capacity = NEW.absorption_capacity - , defects = NEW.defects - , dimension1 = NEW.dimension1 - , dimension2 = NEW.dimension2 - , distance_to_aquifer = NEW.distance_to_aquifer - , effective_area = NEW.effective_area - , emergency_spillway = NEW.emergency_spillway - , kind = NEW.kind - , labeling = NEW.labeling - , seepage_utilization = NEW.seepage_utilization - , upper_elevation = NEW.upper_elevation - , vehicle_access = NEW.vehicle_access - , watertightness = NEW.watertightness - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.wastewater_structure - SET - accessibility = NEW.accessibility - , contract_section = NEW.contract_section - , detail_geometry_geometry = NEW.detail_geometry_geometry - , financing = NEW.financing - , gross_costs = NEW.gross_costs - , identifier = NEW.identifier - , inspection_interval = NEW.inspection_interval - , location_name = NEW.location_name - , records = NEW.records - , remark = NEW.remark - , renovation_necessity = NEW.renovation_necessity - , replacement_value = NEW.replacement_value - , rv_base_year = NEW.rv_base_year - , rv_construction_type = NEW.rv_construction_type - , status = NEW.status - , structure_condition = NEW.structure_condition - , subsidies = NEW.subsidies - , year_of_construction = NEW.year_of_construction - , year_of_replacement = NEW.year_of_replacement - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_owner = NEW.fk_owner - , fk_operator = NEW.fk_operator - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- infiltration_installation DELETE --- Rule: vw_infiltration_installation_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_infiltration_installation_ON_DELETE AS ON DELETE TO tww_app.vw_infiltration_installation DO INSTEAD ( - DELETE FROM tww_od.infiltration_installation WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.wastewater_structure WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_general.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_general.sql deleted file mode 100644 index 75d5cb26b..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_general.sql +++ /dev/null @@ -1,131 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_param_ca_general; - - --------- --- Subclass: param_ca_general --- Superclass: surface_runoff_parameters --------- -CREATE OR REPLACE VIEW tww_app.vw_param_ca_general AS - -SELECT - PC.obj_id - , PC.dry_wheather_flow - , PC.flow_path_length - , PC.flow_path_slope - , PC.population_equivalent - , PC.surface_ca - , SR.evaporation_loss - , SR.identifier - , SR.infiltration_loss - , SR.remark - , SR.surface_storage - , SR.wetting_loss - , SR.fk_dataowner - , SR.fk_provider - , SR.last_modification - , SR.fk_catchment_area - FROM tww_od.param_ca_general PC - LEFT JOIN tww_od.surface_runoff_parameters SR - ON SR.obj_id = PC.obj_id; - ------------------------------------ --- param_ca_general INSERT --- Function: vw_param_ca_general_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_param_ca_general_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.surface_runoff_parameters ( - obj_id - , evaporation_loss - , identifier - , infiltration_loss - , remark - , surface_storage - , wetting_loss - , fk_dataowner - , fk_provider - , last_modification - , fk_catchment_area - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','param_ca_general')) -- obj_id - , NEW.evaporation_loss - , NEW.identifier - , NEW.infiltration_loss - , NEW.remark - , NEW.surface_storage - , NEW.wetting_loss - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_catchment_area - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.param_ca_general ( - obj_id - , dry_wheather_flow - , flow_path_length - , flow_path_slope - , population_equivalent - , surface_ca - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.dry_wheather_flow - , NEW.flow_path_length - , NEW.flow_path_slope - , NEW.population_equivalent - , NEW.surface_ca - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_param_ca_general_ON_INSERT ON tww_od.param_ca_general; - -CREATE TRIGGER vw_param_ca_general_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_param_ca_general - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_param_ca_general_insert(); - ------------------------------------ --- param_ca_general UPDATE --- Rule: vw_param_ca_general_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_param_ca_general_ON_UPDATE AS ON UPDATE TO tww_app.vw_param_ca_general DO INSTEAD ( -UPDATE tww_od.param_ca_general - SET - dry_wheather_flow = NEW.dry_wheather_flow - , flow_path_length = NEW.flow_path_length - , flow_path_slope = NEW.flow_path_slope - , population_equivalent = NEW.population_equivalent - , surface_ca = NEW.surface_ca - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.surface_runoff_parameters - SET - evaporation_loss = NEW.evaporation_loss - , identifier = NEW.identifier - , infiltration_loss = NEW.infiltration_loss - , remark = NEW.remark - , surface_storage = NEW.surface_storage - , wetting_loss = NEW.wetting_loss - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_catchment_area = NEW.fk_catchment_area - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- param_ca_general DELETE --- Rule: vw_param_ca_general_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_param_ca_general_ON_DELETE AS ON DELETE TO tww_app.vw_param_ca_general DO INSTEAD ( - DELETE FROM tww_od.param_ca_general WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.surface_runoff_parameters WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_mouse1.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_mouse1.sql deleted file mode 100644 index 7bc6f7073..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_param_ca_mouse1.sql +++ /dev/null @@ -1,135 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_param_ca_mouse1; - - --------- --- Subclass: param_ca_mouse1 --- Superclass: surface_runoff_parameters --------- -CREATE OR REPLACE VIEW tww_app.vw_param_ca_mouse1 AS - -SELECT - PM.obj_id - , PM.dry_wheather_flow - , PM.flow_path_length - , PM.flow_path_slope - , PM.population_equivalent - , PM.surface_ca_mouse - , PM.usage - , SR.evaporation_loss - , SR.identifier - , SR.infiltration_loss - , SR.remark - , SR.surface_storage - , SR.wetting_loss - , SR.fk_dataowner - , SR.fk_provider - , SR.last_modification - , SR.fk_catchment_area - FROM tww_od.param_ca_mouse1 PM - LEFT JOIN tww_od.surface_runoff_parameters SR - ON SR.obj_id = PM.obj_id; - ------------------------------------ --- param_ca_mouse1 INSERT --- Function: vw_param_ca_mouse1_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_param_ca_mouse1_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.surface_runoff_parameters ( - obj_id - , evaporation_loss - , identifier - , infiltration_loss - , remark - , surface_storage - , wetting_loss - , fk_dataowner - , fk_provider - , last_modification - , fk_catchment_area - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','param_ca_mouse1')) -- obj_id - , NEW.evaporation_loss - , NEW.identifier - , NEW.infiltration_loss - , NEW.remark - , NEW.surface_storage - , NEW.wetting_loss - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_catchment_area - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.param_ca_mouse1 ( - obj_id - , dry_wheather_flow - , flow_path_length - , flow_path_slope - , population_equivalent - , surface_ca_mouse - , usage - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.dry_wheather_flow - , NEW.flow_path_length - , NEW.flow_path_slope - , NEW.population_equivalent - , NEW.surface_ca_mouse - , NEW.usage - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_param_ca_mouse1_ON_INSERT ON tww_od.param_ca_mouse1; - -CREATE TRIGGER vw_param_ca_mouse1_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_param_ca_mouse1 - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_param_ca_mouse1_insert(); - ------------------------------------ --- param_ca_mouse1 UPDATE --- Rule: vw_param_ca_mouse1_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_param_ca_mouse1_ON_UPDATE AS ON UPDATE TO tww_app.vw_param_ca_mouse1 DO INSTEAD ( -UPDATE tww_od.param_ca_mouse1 - SET - dry_wheather_flow = NEW.dry_wheather_flow - , flow_path_length = NEW.flow_path_length - , flow_path_slope = NEW.flow_path_slope - , population_equivalent = NEW.population_equivalent - , surface_ca_mouse = NEW.surface_ca_mouse - , usage = NEW.usage - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.surface_runoff_parameters - SET - evaporation_loss = NEW.evaporation_loss - , identifier = NEW.identifier - , infiltration_loss = NEW.infiltration_loss - , remark = NEW.remark - , surface_storage = NEW.surface_storage - , wetting_loss = NEW.wetting_loss - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_catchment_area = NEW.fk_catchment_area - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- param_ca_mouse1 DELETE --- Rule: vw_param_ca_mouse1_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_param_ca_mouse1_ON_DELETE AS ON DELETE TO tww_app.vw_param_ca_mouse1 DO INSTEAD ( - DELETE FROM tww_od.param_ca_mouse1 WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.surface_runoff_parameters WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_reach_relining.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_reach_relining.sql deleted file mode 100644 index 61a90b92a..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_reach_relining.sql +++ /dev/null @@ -1,29 +0,0 @@ --- View: tww_app.vw_reach_relining - --- DROP VIEW tww_app.vw_reach_relining; - -CREATE OR REPLACE VIEW tww_app.vw_reach_relining AS - SELECT re.obj_id, - re.clear_height, - re.inside_coating, - re.length_effective, - re.material, - re.progression3d_geometry, - re.reliner_material, - re.reliner_nominal_size, - re.relining_construction, - re.relining_kind, - re.ring_stiffness, - re.wall_roughness, - we.identifier, - we.remark, - we.last_modification, - we.fk_wastewater_structure - FROM tww_od.reach re - LEFT JOIN tww_od.wastewater_networkelement we ON we.obj_id::text = re.obj_id::text - Where re.relining_construction > 1 or re.material = 5078; - -ALTER TABLE tww_app.vw_reach_relining - OWNER TO postgres; -GRANT ALL ON TABLE tww_app.vw_reach_relining TO postgres; -GRANT ALL ON TABLE tww_app.vw_reach_relining TO tww; diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_reservoir.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_reservoir.sql deleted file mode 100644 index c0db7930a..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_reservoir.sql +++ /dev/null @@ -1,115 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_reservoir; - - --------- --- Subclass: reservoir --- Superclass: connection_object --------- -CREATE OR REPLACE VIEW tww_app.vw_reservoir AS - -SELECT - RV.obj_id - , RV.location_name - , RV.situation_geometry - , CN.identifier - , CN.remark - , CN.sewer_infiltration_water_production - , CN.fk_dataowner - , CN.fk_provider - , CN.last_modification - , CN.fk_wastewater_networkelement - , CN.fk_owner - , CN.fk_operator - FROM tww_od.reservoir RV - LEFT JOIN tww_od.connection_object CN - ON CN.obj_id = RV.obj_id; - ------------------------------------ --- reservoir INSERT --- Function: vw_reservoir_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_reservoir_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.connection_object ( - obj_id - , identifier - , remark - , sewer_infiltration_water_production - , fk_dataowner - , fk_provider - , last_modification - , fk_wastewater_networkelement - , fk_owner - , fk_operator - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','reservoir')) -- obj_id - , NEW.identifier - , NEW.remark - , NEW.sewer_infiltration_water_production - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_wastewater_networkelement - , NEW.fk_owner - , NEW.fk_operator - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.reservoir ( - obj_id - , location_name - , situation_geometry - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.location_name - , NEW.situation_geometry - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_reservoir_ON_INSERT ON tww_od.reservoir; - -CREATE TRIGGER vw_reservoir_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_reservoir - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_reservoir_insert(); - ------------------------------------ --- reservoir UPDATE --- Rule: vw_reservoir_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_reservoir_ON_UPDATE AS ON UPDATE TO tww_app.vw_reservoir DO INSTEAD ( -UPDATE tww_od.reservoir - SET - location_name = NEW.location_name - , situation_geometry = NEW.situation_geometry - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.connection_object - SET - identifier = NEW.identifier - , remark = NEW.remark - , sewer_infiltration_water_production = NEW.sewer_infiltration_water_production - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_wastewater_networkelement = NEW.fk_wastewater_networkelement - , fk_owner = NEW.fk_owner - , fk_operator = NEW.fk_operator - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- reservoir DELETE --- Rule: vw_reservoir_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_reservoir_ON_DELETE AS ON DELETE TO tww_app.vw_reservoir DO INSTEAD ( - DELETE FROM tww_od.reservoir WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.connection_object WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_solids_retention.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_solids_retention.sql deleted file mode 100644 index e1eb938d5..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_solids_retention.sql +++ /dev/null @@ -1,119 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_solids_retention; - - --------- --- Subclass: solids_retention --- Superclass: structure_part --------- -CREATE OR REPLACE VIEW tww_app.vw_solids_retention AS - -SELECT - SO.obj_id - , SO.dimensioning_value - , SO.gross_costs - , SO.overflow_level - , SO.type - , SO.year_of_replacement - , SP.identifier - , SP.remark - , SP.renovation_demand - , SP.fk_dataowner - , SP.fk_provider - , SP.last_modification - , SP.fk_wastewater_structure - FROM tww_od.solids_retention SO - LEFT JOIN tww_od.structure_part SP - ON SP.obj_id = SO.obj_id; - ------------------------------------ --- solids_retention INSERT --- Function: vw_solids_retention_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_solids_retention_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.structure_part ( - obj_id - , identifier - , remark - , renovation_demand - , fk_dataowner - , fk_provider - , last_modification - , fk_wastewater_structure - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','solids_retention')) -- obj_id - , NEW.identifier - , NEW.remark - , NEW.renovation_demand - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_wastewater_structure - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.solids_retention ( - obj_id - , dimensioning_value - , gross_costs - , overflow_level - , type - , year_of_replacement - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.dimensioning_value - , NEW.gross_costs - , NEW.overflow_level - , NEW.type - , NEW.year_of_replacement - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_solids_retention_ON_INSERT ON tww_od.solids_retention; - -CREATE TRIGGER vw_solids_retention_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_solids_retention - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_solids_retention_insert(); - ------------------------------------ --- solids_retention UPDATE --- Rule: vw_solids_retention_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_solids_retention_ON_UPDATE AS ON UPDATE TO tww_app.vw_solids_retention DO INSTEAD ( -UPDATE tww_od.solids_retention - SET - dimensioning_value = NEW.dimensioning_value - , gross_costs = NEW.gross_costs - , overflow_level = NEW.overflow_level - , type = NEW.type - , year_of_replacement = NEW.year_of_replacement - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.structure_part - SET - identifier = NEW.identifier - , remark = NEW.remark - , renovation_demand = NEW.renovation_demand - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_wastewater_structure = NEW.fk_wastewater_structure - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- solids_retention DELETE --- Rule: vw_solids_retention_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_solids_retention_ON_DELETE AS ON DELETE TO tww_app.vw_solids_retention DO INSTEAD ( - DELETE FROM tww_od.solids_retention WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_cleaning.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_cleaning.sql deleted file mode 100644 index 80299f8cb..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_cleaning.sql +++ /dev/null @@ -1,111 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_tank_cleaning; - - --------- --- Subclass: tank_cleaning --- Superclass: structure_part --------- -CREATE OR REPLACE VIEW tww_app.vw_tank_cleaning AS - -SELECT - TC.obj_id - , TC.gross_costs - , TC.type - , TC.year_of_replacement - , SP.identifier - , SP.remark - , SP.renovation_demand - , SP.fk_dataowner - , SP.fk_provider - , SP.last_modification - , SP.fk_wastewater_structure - FROM tww_od.tank_cleaning TC - LEFT JOIN tww_od.structure_part SP - ON SP.obj_id = TC.obj_id; - ------------------------------------ --- tank_cleaning INSERT --- Function: vw_tank_cleaning_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_tank_cleaning_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.structure_part ( - obj_id - , identifier - , remark - , renovation_demand - , fk_dataowner - , fk_provider - , last_modification - , fk_wastewater_structure - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','tank_cleaning')) -- obj_id - , NEW.identifier - , NEW.remark - , NEW.renovation_demand - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_wastewater_structure - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.tank_cleaning ( - obj_id - , gross_costs - , type - , year_of_replacement - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.gross_costs - , NEW.type - , NEW.year_of_replacement - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_tank_cleaning_ON_INSERT ON tww_od.tank_cleaning; - -CREATE TRIGGER vw_tank_cleaning_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_tank_cleaning - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_tank_cleaning_insert(); - ------------------------------------ --- tank_cleaning UPDATE --- Rule: vw_tank_cleaning_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_tank_cleaning_ON_UPDATE AS ON UPDATE TO tww_app.vw_tank_cleaning DO INSTEAD ( -UPDATE tww_od.tank_cleaning - SET - gross_costs = NEW.gross_costs - , type = NEW.type - , year_of_replacement = NEW.year_of_replacement - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.structure_part - SET - identifier = NEW.identifier - , remark = NEW.remark - , renovation_demand = NEW.renovation_demand - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_wastewater_structure = NEW.fk_wastewater_structure - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- tank_cleaning DELETE --- Rule: vw_tank_cleaning_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_tank_cleaning_ON_DELETE AS ON DELETE TO tww_app.vw_tank_cleaning DO INSTEAD ( - DELETE FROM tww_od.tank_cleaning WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_emptying.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_emptying.sql deleted file mode 100644 index 60e351d9a..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_tank_emptying.sql +++ /dev/null @@ -1,115 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_tank_emptying; - - --------- --- Subclass: tank_emptying --- Superclass: structure_part --------- -CREATE OR REPLACE VIEW tww_app.vw_tank_emptying AS - -SELECT - TE.obj_id - , TE.flow - , TE.gross_costs - , TE.type - , TE.year_of_replacement - , SP.identifier - , SP.remark - , SP.renovation_demand - , SP.fk_dataowner - , SP.fk_provider - , SP.last_modification - , SP.fk_wastewater_structure - FROM tww_od.tank_emptying TE - LEFT JOIN tww_od.structure_part SP - ON SP.obj_id = TE.obj_id; - ------------------------------------ --- tank_emptying INSERT --- Function: vw_tank_emptying_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_tank_emptying_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.structure_part ( - obj_id - , identifier - , remark - , renovation_demand - , fk_dataowner - , fk_provider - , last_modification - , fk_wastewater_structure - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','tank_emptying')) -- obj_id - , NEW.identifier - , NEW.remark - , NEW.renovation_demand - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_wastewater_structure - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.tank_emptying ( - obj_id - , flow - , gross_costs - , type - , year_of_replacement - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.flow - , NEW.gross_costs - , NEW.type - , NEW.year_of_replacement - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_tank_emptying_ON_INSERT ON tww_od.tank_emptying; - -CREATE TRIGGER vw_tank_emptying_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_tank_emptying - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_tank_emptying_insert(); - ------------------------------------ --- tank_emptying UPDATE --- Rule: vw_tank_emptying_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_tank_emptying_ON_UPDATE AS ON UPDATE TO tww_app.vw_tank_emptying DO INSTEAD ( -UPDATE tww_od.tank_emptying - SET - flow = NEW.flow - , gross_costs = NEW.gross_costs - , type = NEW.type - , year_of_replacement = NEW.year_of_replacement - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.structure_part - SET - identifier = NEW.identifier - , remark = NEW.remark - , renovation_demand = NEW.renovation_demand - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_wastewater_structure = NEW.fk_wastewater_structure - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- tank_emptying DELETE --- Rule: vw_tank_emptying_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_tank_emptying_ON_DELETE AS ON DELETE TO tww_app.vw_tank_emptying DO INSTEAD ( - DELETE FROM tww_od.tank_emptying WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.structure_part WHERE obj_id = OLD.obj_id; -); diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_reach.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_reach.sql deleted file mode 100644 index c32efdf8c..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_reach.sql +++ /dev/null @@ -1,40 +0,0 @@ --- View: tww_app.vw_tww_maintenance_on_reach - --- DROP VIEW tww_app.vw_tww_maintenance_on_reach; - -CREATE OR REPLACE VIEW tww_app.vw_tww_maintenance_on_reach AS - SELECT re_m_w.obj_id AS re_m_w_id, - maintenance.obj_id, - maintenance.identifier, - maintenance.kind, - maintenance.remark, - maintenance.status, - maintenance.time_point, - maintenance.base_data, - maintenance.cost, - maintenance.data_details, - maintenance.duration, - maintenance.operator, - maintenance.reason, - maintenance.result, - maintenance.last_modification, - maintenance.fk_operating_company, - reach.progression3d_geometry, - reach.length_effective AS re_length_effective, - reach.material AS re_material, - ch.usage_current AS ch_usage_current, - ch.function_hierarchic AS ch_function_hierarchic, - ws.status AS ws_status, - ws.fk_owner AS ws_fk_owner - FROM tww_od.maintenance_event maintenance - LEFT JOIN tww_od.re_maintenance_event_wastewater_structure re_m_w ON maintenance.obj_id::text = re_m_w.fk_maintenance_event::text - LEFT JOIN tww_od.wastewater_structure ws ON re_m_w.fk_wastewater_structure::text = ws.obj_id::text - LEFT JOIN tww_od.channel ch ON ch.obj_id::text = ws.obj_id::text - LEFT JOIN tww_od.wastewater_networkelement ne ON ne.fk_wastewater_structure::text = ws.obj_id::text - LEFT JOIN tww_od.reach reach ON reach.obj_id::text = ne.obj_id::text - WHERE ch.obj_id IS NOT NULL; - -ALTER TABLE tww_app.vw_tww_maintenance_on_reach - OWNER TO postgres; -GRANT ALL ON TABLE tww_app.vw_tww_maintenance_on_reach TO postgres; -GRANT ALL ON TABLE tww_app.vw_tww_maintenance_on_reach TO tww; diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_wws.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_wws.sql deleted file mode 100644 index 51747b369..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_maintenance_on_wws.sql +++ /dev/null @@ -1,37 +0,0 @@ --- View: tww_app.vw_tww_maintenance_on_wws - --- DROP VIEW tww_app.vw_tww_maintenance_on_wws; - -CREATE OR REPLACE VIEW tww_app.vw_tww_maintenance_on_wws AS - SELECT re_m_w.obj_id AS re_m_w_id, - maintenance.obj_id, - maintenance.identifier, - maintenance.kind, - maintenance.remark, - maintenance.status, - maintenance.time_point, - maintenance.base_data, - maintenance.cost, - maintenance.data_details, - maintenance.duration, - maintenance.operator, - maintenance.reason, - maintenance.result, - maintenance.last_modification, - maintenance.fk_operating_company, - node.situation_geometry, - ws.identifier AS ws_idenifier, - ws.status AS ws_status, - ws.fk_owner AS ws_fk_owner - FROM tww_od.maintenance_event maintenance - LEFT JOIN tww_od.re_maintenance_event_wastewater_structure re_m_w ON maintenance.obj_id::text = re_m_w.fk_maintenance_event::text - LEFT JOIN tww_od.wastewater_structure ws ON re_m_w.fk_wastewater_structure::text = ws.obj_id::text - LEFT JOIN tww_od.wastewater_networkelement ne ON ne.fk_wastewater_structure::text = ws.obj_id::text - LEFT JOIN tww_od.wastewater_node node ON node.obj_id::text = ne.obj_id::text - WHERE node.obj_id is not null; - - -ALTER TABLE tww_app.vw_tww_maintenance_on_wws - OWNER TO postgres; -GRANT ALL ON TABLE tww_app.vw_tww_maintenance_on_wws TO postgres; -GRANT ALL ON TABLE tww_app.vw_tww_maintenance_on_wws TO tww; diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_wwtp_structure.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_wwtp_structure.sql deleted file mode 100644 index 64494ea5d..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_wwtp_structure.sql +++ /dev/null @@ -1,170 +0,0 @@ -DROP VIEW IF EXISTS tww_app.vw_wwtp_structure; - --------- --- Subclass: wwtp_structure --- Superclass: wastewater_structure --------- -CREATE OR REPLACE VIEW tww_app.vw_wwtp_structure AS - -SELECT - WT.obj_id - , WT.kind - , WS.accessibility - , WS.contract_section - , WS.detail_geometry_geometry - , WS.financing - , WS.gross_costs - , WS.identifier - , WS.inspection_interval - , WS.location_name - , WS.records - , WS.remark - , WS.renovation_necessity - , WS.replacement_value - , WS.rv_base_year - , WS.rv_construction_type - , WS.status - , WS.structure_condition - , WS.subsidies - , WS.year_of_construction - , WS.year_of_replacement - , WS.fk_dataowner - , WS.fk_provider - , WS.last_modification - , WS.fk_owner - , WS.fk_operator - FROM tww_od.wwtp_structure WT - LEFT JOIN tww_od.wastewater_structure WS - ON WS.obj_id = WT.obj_id; - ------------------------------------ --- wwtp_structure INSERT --- Function: vw_wwtp_structure_insert() ------------------------------------ - -CREATE OR REPLACE FUNCTION tww_app.vw_wwtp_structure_insert() - RETURNS trigger AS -$BODY$ -BEGIN - INSERT INTO tww_od.wastewater_structure ( - obj_id - , accessibility - , contract_section - , detail_geometry_geometry - , financing - , gross_costs - , identifier - , inspection_interval - , location_name - , records - , remark - , renovation_necessity - , replacement_value - , rv_base_year - , rv_construction_type - , status - , structure_condition - , subsidies - , year_of_construction - , year_of_replacement - , fk_dataowner - , fk_provider - , last_modification - , fk_owner - , fk_operator - ) - VALUES ( COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','wwtp_structure')) -- obj_id - , NEW.accessibility - , NEW.contract_section - , NEW.detail_geometry_geometry - , NEW.financing - , NEW.gross_costs - , NEW.identifier - , NEW.inspection_interval - , NEW.location_name - , NEW.records - , NEW.remark - , NEW.renovation_necessity - , NEW.replacement_value - , NEW.rv_base_year - , NEW.rv_construction_type - , NEW.status - , NEW.structure_condition - , NEW.subsidies - , NEW.year_of_construction - , NEW.year_of_replacement - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.last_modification - , NEW.fk_owner - , NEW.fk_operator - ) - RETURNING obj_id INTO NEW.obj_id; - -INSERT INTO tww_od.wwtp_structure ( - obj_id - , kind - ) - VALUES ( - NEW.obj_id -- obj_id - , NEW.kind - ); - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - --- DROP TRIGGER vw_wwtp_structure_ON_INSERT ON tww_od.wwtp_structure; - -CREATE TRIGGER vw_wwtp_structure_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_wwtp_structure - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_wwtp_structure_insert(); - ------------------------------------ --- wwtp_structure UPDATE --- Rule: vw_wwtp_structure_ON_UPDATE() ------------------------------------ - -CREATE OR REPLACE RULE vw_wwtp_structure_ON_UPDATE AS ON UPDATE TO tww_app.vw_wwtp_structure DO INSTEAD ( -UPDATE tww_od.wwtp_structure - SET - kind = NEW.kind - WHERE obj_id = OLD.obj_id; - -UPDATE tww_od.wastewater_structure - SET - accessibility = NEW.accessibility - , contract_section = NEW.contract_section - , detail_geometry_geometry = NEW.detail_geometry_geometry - , financing = NEW.financing - , gross_costs = NEW.gross_costs - , identifier = NEW.identifier - , inspection_interval = NEW.inspection_interval - , location_name = NEW.location_name - , records = NEW.records - , remark = NEW.remark - , renovation_necessity = NEW.renovation_necessity - , replacement_value = NEW.replacement_value - , rv_base_year = NEW.rv_base_year - , rv_construction_type = NEW.rv_construction_type - , status = NEW.status - , structure_condition = NEW.structure_condition - , subsidies = NEW.subsidies - , year_of_construction = NEW.year_of_construction - , year_of_replacement = NEW.year_of_replacement - , fk_dataowner = NEW.fk_dataowner - , fk_provider = NEW.fk_provider - , last_modification = NEW.last_modification - , fk_owner = NEW.fk_owner - , fk_operator = NEW.fk_operator - WHERE obj_id = OLD.obj_id; -); - ------------------------------------ --- wwtp_structure DELETE --- Rule: vw_wwtp_structure_ON_DELETE () ------------------------------------ - -CREATE OR REPLACE RULE vw_wwtp_structure_ON_DELETE AS ON DELETE TO tww_app.vw_wwtp_structure DO INSTEAD ( - DELETE FROM tww_od.wwtp_structure WHERE obj_id = OLD.obj_id; - DELETE FROM tww_od.wastewater_structure WHERE obj_id = OLD.obj_id; -); From 79a8209d7c2692145712889a9c6477de9200efcf Mon Sep 17 00:00:00 2001 From: SJiB Date: Tue, 12 Dec 2023 12:03:04 +0100 Subject: [PATCH 7/9] take out view --- .../vw_tww_catchment_area.sql | 211 ------------------ 1 file changed, 211 deletions(-) delete mode 100644 datamodel/app/view/unused_views/heritage_dss2015/vw_tww_catchment_area.sql diff --git a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_catchment_area.sql b/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_catchment_area.sql deleted file mode 100644 index 8bfb669b0..000000000 --- a/datamodel/app/view/unused_views/heritage_dss2015/vw_tww_catchment_area.sql +++ /dev/null @@ -1,211 +0,0 @@ -CREATE OR REPLACE VIEW tww_app.vw_tww_catchment_area AS - -SELECT - CA.obj_id, - direct_discharge_current, - direct_discharge_planned, - discharge_coefficient_rw_current, - discharge_coefficient_rw_planned, - discharge_coefficient_ww_current, - discharge_coefficient_ww_planned, - drainage_system_current, - drainage_system_planned, - CA.identifier, - infiltration_current, - infiltration_planned, - perimeter_geometry, - population_density_current, - population_density_planned, - CA.remark, - retention_current, - retention_planned, - runoff_limit_current, - runoff_limit_planned, - seal_factor_rw_current, - seal_factor_rw_planned, - seal_factor_ww_current, - seal_factor_ww_planned, - sewer_infiltration_water_production_current, - sewer_infiltration_water_production_planned, - surface_area, - waste_water_production_current, - waste_water_production_planned, - CA.last_modification, - CA.fk_dataowner, - CA.fk_provider, - fk_wastewater_networkelement_rw_current, - fk_wastewater_networkelement_rw_planned, - fk_wastewater_networkelement_ww_planned, - fk_wastewater_networkelement_ww_current, - NE_rw_current.identifier AS rw_current_identifier, - NE_rw_planned.identifier AS rw_planned_identifier, - NE_ww_planned.identifier AS ww_planned_identifier, - NE_ww_current.identifier AS ww_current_identifier - FROM tww_od.catchment_area CA -LEFT JOIN tww_od.wastewater_networkelement NE_rw_current - ON CA.fk_wastewater_networkelement_rw_current = NE_rw_current.obj_id -LEFT JOIN tww_od.wastewater_networkelement NE_rw_planned - ON CA.fk_wastewater_networkelement_rw_planned = NE_rw_planned.obj_id -LEFT JOIN tww_od.wastewater_networkelement NE_ww_planned - ON CA.fk_wastewater_networkelement_ww_planned = NE_ww_planned.obj_id -LEFT JOIN tww_od.wastewater_networkelement NE_ww_current - ON CA.fk_wastewater_networkelement_ww_current = NE_ww_current.obj_id; - - ------------------------------------ --- catchment_area INSERT --- Function: vw_tww_catchment_area_insert() ------------------------------------ - - -CREATE OR REPLACE FUNCTION tww_app.vw_tww_catchment_area_insert() - RETURNS trigger AS -$BODY$ -BEGIN -INSERT INTO tww_od.catchment_area( - obj_id - , direct_discharge_current - , direct_discharge_planned - , discharge_coefficient_rw_current - , discharge_coefficient_rw_planned - , discharge_coefficient_ww_current - , discharge_coefficient_ww_planned - , drainage_system_current - , drainage_system_planned - , identifier - , infiltration_current - , infiltration_planned - , perimeter_geometry - , population_density_current - , population_density_planned - , remark - , retention_current - , retention_planned - , runoff_limit_current - , runoff_limit_planned - , seal_factor_rw_current - , seal_factor_rw_planned - , seal_factor_ww_current - , seal_factor_ww_planned - , sewer_infiltration_water_production_current - , sewer_infiltration_water_production_planned - , surface_area - , waste_water_production_current - , waste_water_production_planned - , last_modification - , fk_dataowner - , fk_provider - , fk_wastewater_networkelement_rw_current - , fk_wastewater_networkelement_rw_planned - , fk_wastewater_networkelement_ww_planned - , fk_wastewater_networkelement_ww_current) -VALUES ( - COALESCE(NEW.obj_id,tww_sys.generate_oid('tww_od','catchment_area')) - , NEW.direct_discharge_current - , NEW.direct_discharge_planned=NEW.NEW.direct_discharge_planned - , NEW.discharge_coefficient_rw_current - , NEW.discharge_coefficient_rw_planned - , NEW.discharge_coefficient_ww_current - , NEW.discharge_coefficient_ww_planned - , NEW.drainage_system_current - , NEW.drainage_system_planned - , NEW.identifier - , NEW.infiltration_current - , NEW.infiltration_planned - , NEW.perimeter_geometry - , NEW.population_density_current - , NEW.population_density_planned - , NEW.remark - , NEW.retention_current - , NEW.retention_planned - , NEW.runoff_limit_current - , NEW.runoff_limit_planned - , NEW.seal_factor_rw_current - , NEW.seal_factor_rw_planned - , NEW.seal_factor_ww_current - , NEW.seal_factor_ww_planned - , NEW.sewer_infiltration_water_production_current - , NEW.sewer_infiltration_water_production_planned - , NEW.surface_area - , NEW.waste_water_production_current - , NEW.waste_water_production_planned - , NEW.last_modification - , NEW.fk_dataowner - , NEW.fk_provider - , NEW.fk_wastewater_networkelement_rw_current - , NEW.fk_wastewater_networkelement_rw_planned - , NEW.fk_wastewater_networkelement_ww_planned - , NEW.fk_wastewater_networkelement_ww_current -) -RETURNING obj_id INTO NEW.obj_id; - RETURN NEW; -END; $BODY$ - LANGUAGE plpgsql VOLATILE - COST 100; - - --- DROP TRIGGER vw_tww_catchment_area_ON_INSERT ON tww_od.catchment_area; - -CREATE TRIGGER vw_tww_catchment_area_ON_INSERT INSTEAD OF INSERT ON tww_app.vw_tww_catchment_area - FOR EACH ROW EXECUTE PROCEDURE tww_app.vw_tww_catchment_area_insert(); - - ------------------------------------ --- catchment_area UPDATE --- Function: vw_tww_catchment_area_ON_UPDATE() ------------------------------------ - - -CREATE OR REPLACE RULE vw_tww_catchment_area_ON_UPDATE AS ON UPDATE TO tww_app.vw_tww_catchment_area DO INSTEAD ( -UPDATE tww_od.catchment_area - SET - direct_discharge_current=NEW.direct_discharge_current - , direct_discharge_planned=NEW.direct_discharge_planned - , discharge_coefficient_rw_current=NEW.discharge_coefficient_rw_current - , discharge_coefficient_rw_planned=NEW.discharge_coefficient_rw_planned - , discharge_coefficient_ww_current=NEW.discharge_coefficient_ww_current - , discharge_coefficient_ww_planned=NEW.discharge_coefficient_ww_planned - , drainage_system_current=NEW.drainage_system_current - , drainage_system_planned=NEW.drainage_system_planned - , identifier=NEW.identifier - , infiltration_current=NEW.infiltration_current - , infiltration_planned=NEW.infiltration_planned - , perimeter_geometry=NEW.perimeter_geometry - , population_density_current=NEW.population_density_current - , population_density_planned=NEW.population_density_planned - , remark=NEW.remark - , retention_current=NEW.retention_current - , retention_planned=NEW.retention_planned - , runoff_limit_current=NEW.runoff_limit_current - , runoff_limit_planned=NEW.runoff_limit_planned - , seal_factor_rw_current=NEW.seal_factor_rw_current - , seal_factor_rw_planned=NEW.seal_factor_rw_planned - , seal_factor_ww_current=NEW.seal_factor_ww_current - , seal_factor_ww_planned=NEW.seal_factor_ww_planned - , sewer_infiltration_water_production_current=NEW.sewer_infiltration_water_production_current - , sewer_infiltration_water_production_planned=NEW.sewer_infiltration_water_production_planned - , surface_area=NEW.surface_area - , waste_water_production_current=NEW.waste_water_production_current - , waste_water_production_planned=NEW.waste_water_production_planned - , last_modification=NEW.last_modification - , fk_dataowner=NEW.fk_dataowner - , fk_provider=NEW.fk_provider - , fk_wastewater_networkelement_rw_current=NEW.fk_wastewater_networkelement_rw_current - , fk_wastewater_networkelement_rw_planned=NEW.fk_wastewater_networkelement_rw_planned - , fk_wastewater_networkelement_ww_planned=NEW.fk_wastewater_networkelement_ww_planned - , fk_wastewater_networkelement_ww_current=NEW.fk_wastewater_networkelement_ww_current - - WHERE obj_id=OLD.obj_id; -); - - ------------------------------------ --- catchment_area DELETE --- Rule: vw_tww_catchment_area_ON_DELETE () ------------------------------------ - - -CREATE OR REPLACE RULE vw_tww_catchment_area_ON_DELETE AS ON DELETE TO tww_app.vw_tww_catchment_area DO -INSTEAD ( - DELETE FROM tww_od.catchment_area WHERE obj_id = OLD.obj_id; -); From b256ae3a8155cf8aa0ab71c79f2384eccb5d0843 Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Tue, 12 Dec 2023 12:21:30 +0100 Subject: [PATCH 8/9] uuid extension --- datamodel/.docker/init_db.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/datamodel/.docker/init_db.sh b/datamodel/.docker/init_db.sh index 67b8e8eef..8b9ff8469 100755 --- a/datamodel/.docker/init_db.sh +++ b/datamodel/.docker/init_db.sh @@ -25,7 +25,8 @@ recreate_db(){ psql -U postgres -d postgres -o /dev/null -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$1'" dropdb -U postgres --if-exists $1 createdb -U postgres $1 - psql -c "CREATE EXTENSION postgis" + psql -c "CREATE EXTENSION IF NOT EXISTS postgis" + psql -c "CREATE EXTENSION IF NOT EXISTS uuid-ossp" } if [ "$1" == "wait" ]; then From 6449de48d8830245bb25a8b141d78ba241cdddb5 Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Tue, 12 Dec 2023 12:25:59 +0100 Subject: [PATCH 9/9] Update init_db.sh --- datamodel/.docker/init_db.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datamodel/.docker/init_db.sh b/datamodel/.docker/init_db.sh index 8b9ff8469..60f2e5315 100755 --- a/datamodel/.docker/init_db.sh +++ b/datamodel/.docker/init_db.sh @@ -25,8 +25,8 @@ recreate_db(){ psql -U postgres -d postgres -o /dev/null -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$1'" dropdb -U postgres --if-exists $1 createdb -U postgres $1 - psql -c "CREATE EXTENSION IF NOT EXISTS postgis" - psql -c "CREATE EXTENSION IF NOT EXISTS uuid-ossp" + psql -c 'CREATE EXTENSION IF NOT EXISTS postgis' + psql -c 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp"' } if [ "$1" == "wait" ]; then