From 7a36cc501ad4b7b0114fe847e4cf1d3dede4aaea Mon Sep 17 00:00:00 2001 From: Adam Guo Date: Wed, 26 Mar 2025 17:20:36 +0000 Subject: [PATCH] Add event trigger to update querystring. --- pg_ivm--1.10--1.11.sql | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pg_ivm--1.10--1.11.sql b/pg_ivm--1.10--1.11.sql index b093d22..6819be4 100644 --- a/pg_ivm--1.10--1.11.sql +++ b/pg_ivm--1.10--1.11.sql @@ -1 +1,23 @@ ALTER TABLE pgivm.pg_ivm_immv ADD COLUMN querystring text; + +CREATE FUNCTION pgivm.refresh_query_strings() +RETURNS event_trigger LANGUAGE plpgsql AS +$$ +DECLARE + old_search_path text; +BEGIN + -- Empty search path so that get_immv_def returns a fully-qualified query. + SELECT setting INTO old_search_path FROM pg_catalog.pg_settings + WHERE name = 'search_path'; + SET search_path = ''; + + UPDATE pgivm.pg_ivm_immv SET querystring = pgivm.get_immv_def(immvrelid); + + -- Reset search path to the original value. + EXECUTE format('SET search_path = %s', old_search_path); +END +$$; + +CREATE EVENT TRIGGER refresh_query_strings +ON ddl_command_end +EXECUTE FUNCTION pgivm.refresh_query_strings();