Skip to content

Commit

Permalink
#884 create latest mat view for intersection layer as well
Browse files Browse the repository at this point in the history
  • Loading branch information
chmnata authored and radumas committed Apr 22, 2024
1 parent a12ee12 commit 8157142
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
CREATE MATERIALIZED VIEW gis_core.centreline_intersection_point_latest AS

SELECT *
FROM gis_core.centreline_intersection_point
WHERE version_date = (SELECT MAX(version_date) FROM gis_core.centreline_intersection_point);

CREATE TRIGGER refresh_trigger
AFTER INSERT OR UPDATE OR DELETE
ON gis_core.centreline_intersection_point
FOR EACH STATEMENT
EXECUTE PROCEDURE gis_core.centreline_intersection_point_latest_trigger();

CREATE INDEX gis_core_centreline_intersection_point_latest_geom ON gis_core.centreline_intersection_point_latest USING gist (geom);

ALTER MATERIALIZED VIEW gis_core.centreline_intersection_point_latest OWNER TO gis_admins;

GRANT SELECT ON gis_core.centreline_intersection_point_latest TO bdit_humans;

COMMENT ON MATERIALIZED VIEW gis_core.centreline_intersection_point_latest IS 'Materialized view containing the latest version of centreline intersection point, derived from gis_core.centreline_intersection_point.'
19 changes: 19 additions & 0 deletions gis/centreline/sql/create_matview_intersection_latest.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
CREATE MATERIALIZED VIEW gis_core.intersection_latest AS

SELECT *
FROM gis_core.intersection
WHERE version_date = (SELECT MAX(version_date) FROM gis_core.intersection);

CREATE TRIGGER refresh_trigger
AFTER INSERT OR UPDATE OR DELETE
ON gis_core.intersection
FOR EACH STATEMENT
EXECUTE PROCEDURE gis_core.intersection_latest_trigger();

CREATE INDEX gis_core_intersection_latest_geom ON gis_core.intersection_latest USING gist (geom);

ALTER MATERIALIZED VIEW gis_core.intersection_latest OWNER TO gis_admins;

GRANT SELECT ON gis_core.intersection_latest TO bdit_humans;

COMMENT ON MATERIALIZED VIEW gis_core.intersection_latest IS 'Materialized view containing the latest version of intersection , derived from gis_core.intersection.'
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
CREATE OR REPLACE FUNCTION gis_core.centreline_intersection_point_latest_trigger()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 100
VOLATILE NOT LEAKPROOF SECURITY DEFINER
AS $BODY$
BEGIN

REFRESH MATERIALIZED VIEW gis_core.centreline_intersection_point_latest;
RETURN NULL;

END;
$BODY$;

ALTER FUNCTION gis_core.centreline_intersection_point_latest_trigger() OWNER TO gis_admins;

COMMENT ON FUNCTION gis_core.centreline_intersection_point_latest_trigger() IS 'Trigger fuction that refreshes the centreline_intersection_point_latest mat view after an update.';
17 changes: 17 additions & 0 deletions gis/centreline/sql/create_trigger_intersection_latest.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
CREATE OR REPLACE FUNCTION gis_core.intersection_latest_trigger()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 100
VOLATILE NOT LEAKPROOF SECURITY DEFINER
AS $BODY$
BEGIN

REFRESH MATERIALIZED VIEW gis_core.intersection_latest;
RETURN NULL;

END;
$BODY$;

ALTER FUNCTION gis_core.intersection_latest_trigger() OWNER TO gis_admins;

COMMENT ON FUNCTION gis_core.intersection_latest_trigger() IS 'Trigger fuction that refreshes the intersection_latest mat view after an update.';

0 comments on commit 8157142

Please sign in to comment.