changeset 2542:fc7d828695c9

Schema: Added caching schema containing the sounding differences.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 07 Mar 2019 15:55:25 +0100
parents 468c8dc796cf
children a542045f28a6
files schema/auth.sql schema/gemma.sql
diffstat 2 files changed, 36 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/schema/auth.sql	Thu Mar 07 15:53:12 2019 +0100
+++ b/schema/auth.sql	Thu Mar 07 15:55:25 2019 +0100
@@ -25,8 +25,9 @@
 --
 -- Privileges for waterway_user
 --
-GRANT USAGE ON SCHEMA public, users, waterway, systemconf TO waterway_user;
+GRANT USAGE ON SCHEMA public, users, waterway, systemconf, caching TO waterway_user;
 GRANT SELECT ON ALL TABLES IN SCHEMA public, users, waterway TO waterway_user;
+GRANT SELECT, UPDATE, DELETE, INSERT ON ALL TABLES IN SCHEMA caching TO waterway_user;
 GRANT SELECT ON systemconf.feature_colours TO waterway_user;
 GRANT UPDATE (pw, map_extent, email_address) ON users.list_users
     TO waterway_user;
--- a/schema/gemma.sql	Thu Mar 07 15:53:12 2019 +0100
+++ b/schema/gemma.sql	Thu Mar 07 15:55:25 2019 +0100
@@ -755,4 +755,38 @@
 $$
 LANGUAGE plpgsql;
 
+CREATE SCHEMA caching
+
+    CREATE TABLE sounding_differences (
+        id         int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
+        minuend    int NOT NULL REFERENCES waterway.sounding_results(id)
+                       ON DELETE CASCADE,
+        subtrahend int NOT NULL REFERENCES waterway.sounding_results(id)
+                       ON DELETE CASCADE,
+        UNIQUE (minuend, subtrahend)
+    )
+
+    CREATE TABLE sounding_differences_contour_lines (
+        sounding_differences_id int NOT NULL REFERENCES sounding_differences(id)
+                                    ON DELETE CASCADE,
+        height numeric NOT NULL,
+        lines  geography(multilinestring, 4326) NOT NULL,
+        PRIMARY KEY (sounding_differences_id, height)
+    )
+;
+
+CREATE VIEW waterway.sounding_differences AS SELECT
+    sd.id                AS id,
+    bn.objnam            AS objnam,
+    srm.date_info        AS minuend,
+    srs.date_info        AS subtrahend,
+    sdcl.height          AS height,
+    sdcl.lines::geometry AS lines
+FROM
+    caching.sounding_differences sd JOIN
+    caching.sounding_differences_contour_lines sdcl ON sd.id = sdcl.sounding_differences_id JOIN
+    waterway.sounding_results srm ON sd.minuend    = srm.id JOIN
+    waterway.sounding_results srs ON sd.subtrahend = srs.id JOIN
+    waterway.bottlenecks bn ON srm.bottleneck_id = bn.id;
+
 COMMIT;