Merge ac2bff13f7 into 132816cffe
This commit is contained in:
commit
a05318979b
7 changed files with 134 additions and 1 deletions
2
Makefile
2
Makefile
|
|
@ -21,7 +21,7 @@ DATA = pg_ivm--1.0.sql \
|
||||||
pg_ivm--1.10.sql \
|
pg_ivm--1.10.sql \
|
||||||
pg_ivm--1.10--1.11.sql pg_ivm--1.11--1.12.sql
|
pg_ivm--1.10--1.11.sql pg_ivm--1.11--1.12.sql
|
||||||
|
|
||||||
REGRESS = pg_ivm create_immv refresh_immv
|
REGRESS = pg_ivm create_immv refresh_immv preload_libraries_warning
|
||||||
|
|
||||||
PGVER = $(shell $(PG_CONFIG) --version | sed "s/^[^ ]* \([0-9]*\).*$$/\1/" 2>/dev/null)
|
PGVER = $(shell $(PG_CONFIG) --version | sed "s/^[^ ]* \([0-9]*\).*$$/\1/" 2>/dev/null)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,11 @@
|
||||||
|
ALTER SYSTEM SET session_preload_libraries = pg_ivm;
|
||||||
|
SELECT pg_reload_conf();
|
||||||
|
pg_reload_conf
|
||||||
|
----------------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\c -
|
||||||
CREATE EXTENSION pg_ivm;
|
CREATE EXTENSION pg_ivm;
|
||||||
GRANT ALL ON SCHEMA public TO public;
|
GRANT ALL ON SCHEMA public TO public;
|
||||||
-- create a table to use as a basis for views and materialized views in various combinations
|
-- create a table to use as a basis for views and materialized views in various combinations
|
||||||
|
|
|
||||||
51
expected/preload_libraries_warning.out
Normal file
51
expected/preload_libraries_warning.out
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
-- SQL tests to validate that the session_preload_libraries warning is emitted
|
||||||
|
-- whenever pg_ivm is not in session_preload_libraries.
|
||||||
|
DROP EXTENSION IF EXISTS pg_ivm CASCADE;
|
||||||
|
NOTICE: drop cascades to 12 other objects
|
||||||
|
DETAIL: drop cascades to trigger IVM_trigger_ins_before_17633 on table t
|
||||||
|
drop cascades to trigger IVM_trigger_del_before_17634 on table t
|
||||||
|
drop cascades to trigger IVM_trigger_upd_before_17635 on table t
|
||||||
|
drop cascades to trigger IVM_trigger_truncate_before_17636 on table t
|
||||||
|
drop cascades to trigger IVM_trigger_ins_after_17637 on table t
|
||||||
|
drop cascades to trigger IVM_trigger_del_after_17638 on table t
|
||||||
|
drop cascades to trigger IVM_trigger_upd_after_17639 on table t
|
||||||
|
drop cascades to trigger IVM_trigger_truncate_after_17640 on table t
|
||||||
|
drop cascades to trigger IVM_prevent_immv_change_17621 on table mv
|
||||||
|
drop cascades to trigger IVM_prevent_immv_change_17622 on table mv
|
||||||
|
drop cascades to trigger IVM_prevent_immv_change_17623 on table mv
|
||||||
|
drop cascades to trigger IVM_prevent_immv_change_17624 on table mv
|
||||||
|
-- Validate that pg_ivm 1.10 cannot be created if pg_ivm is not in
|
||||||
|
-- session_preload_libraries.
|
||||||
|
ALTER SYSTEM RESET session_preload_libraries;
|
||||||
|
SELECT pg_reload_conf();
|
||||||
|
pg_reload_conf
|
||||||
|
----------------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\c -
|
||||||
|
CREATE EXTENSION pg_ivm VERSION '1.9'; -- expect success
|
||||||
|
ALTER EXTENSION pg_ivm UPDATE; -- expect failure
|
||||||
|
ERROR: pg_ivm is not loaded in shared_preload_libraries or session_preload_libraries
|
||||||
|
HINT: Add pg_ivm to session_preload_libraries and restart the session. Or, add pg_ivm to shared_preload_libraries and restart Postgres.
|
||||||
|
CONTEXT: PL/pgSQL function inline_code_block line 13 at RAISE
|
||||||
|
DROP EXTENSION pg_ivm;
|
||||||
|
CREATE EXTENSION pg_ivm; -- expect failure
|
||||||
|
ERROR: pg_ivm is not loaded in shared_preload_libraries or session_preload_libraries
|
||||||
|
HINT: Add pg_ivm to session_preload_libraries and restart the session. Or, add pg_ivm to shared_preload_libraries and restart Postgres.
|
||||||
|
CONTEXT: PL/pgSQL function inline_code_block line 13 at RAISE
|
||||||
|
-- Validate that pg_ivm 1.10 can be created if pg_ivm is in
|
||||||
|
-- session_preload_libraries.
|
||||||
|
ALTER SYSTEM SET session_preload_libraries = pg_ivm;
|
||||||
|
SELECT pg_reload_conf();
|
||||||
|
pg_reload_conf
|
||||||
|
----------------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\c -
|
||||||
|
CREATE EXTENSION pg_ivm VERSION '1.9'; -- expect success
|
||||||
|
ALTER EXTENSION pg_ivm UPDATE; -- expect success
|
||||||
|
DROP EXTENSION pg_ivm;
|
||||||
|
CREATE EXTENSION pg_ivm; -- expect success
|
||||||
|
DROP EXTENSION pg_ivm CASCADE;
|
||||||
|
|
@ -1,3 +1,24 @@
|
||||||
|
DO $$
|
||||||
|
DECLARE
|
||||||
|
shared_pl text;
|
||||||
|
session_pl text;
|
||||||
|
BEGIN
|
||||||
|
SELECT setting INTO shared_pl FROM pg_catalog.pg_settings
|
||||||
|
WHERE name = 'shared_preload_libraries';
|
||||||
|
|
||||||
|
SELECT setting INTO session_pl FROM pg_catalog.pg_settings
|
||||||
|
WHERE name = 'session_preload_libraries';
|
||||||
|
|
||||||
|
IF shared_pl !~ '\mpg_ivm\M' AND session_pl !~ '\mpg_ivm\M' THEN
|
||||||
|
RAISE EXCEPTION 'pg_ivm is not loaded in shared_preload_libraries '
|
||||||
|
'or session_preload_libraries'
|
||||||
|
USING HINT = 'Add pg_ivm to session_preload_libraries and '
|
||||||
|
'restart the session. Or, add pg_ivm to '
|
||||||
|
'shared_preload_libraries and restart Postgres.';
|
||||||
|
END IF;
|
||||||
|
END
|
||||||
|
$$;
|
||||||
|
|
||||||
CREATE SCHEMA pgivm;
|
CREATE SCHEMA pgivm;
|
||||||
|
|
||||||
-- catalog
|
-- catalog
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,24 @@
|
||||||
|
DO $$
|
||||||
|
DECLARE
|
||||||
|
shared_pl text;
|
||||||
|
session_pl text;
|
||||||
|
BEGIN
|
||||||
|
SELECT setting INTO shared_pl FROM pg_catalog.pg_settings
|
||||||
|
WHERE name = 'shared_preload_libraries';
|
||||||
|
|
||||||
|
SELECT setting INTO session_pl FROM pg_catalog.pg_settings
|
||||||
|
WHERE name = 'session_preload_libraries';
|
||||||
|
|
||||||
|
IF shared_pl !~ '\mpg_ivm\M' AND session_pl !~ '\mpg_ivm\M' THEN
|
||||||
|
RAISE EXCEPTION 'pg_ivm is not loaded in shared_preload_libraries '
|
||||||
|
'or session_preload_libraries'
|
||||||
|
USING HINT = 'Add pg_ivm to session_preload_libraries and '
|
||||||
|
'restart the session. Or, add pg_ivm to '
|
||||||
|
'shared_preload_libraries and restart Postgres.';
|
||||||
|
END IF;
|
||||||
|
END
|
||||||
|
$$;
|
||||||
|
|
||||||
-- create a new schema pgivm and change the objects' schema to it
|
-- create a new schema pgivm and change the objects' schema to it
|
||||||
CREATE SCHEMA pgivm;
|
CREATE SCHEMA pgivm;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,7 @@
|
||||||
|
ALTER SYSTEM SET session_preload_libraries = pg_ivm;
|
||||||
|
SELECT pg_reload_conf();
|
||||||
|
\c -
|
||||||
|
|
||||||
CREATE EXTENSION pg_ivm;
|
CREATE EXTENSION pg_ivm;
|
||||||
GRANT ALL ON SCHEMA public TO public;
|
GRANT ALL ON SCHEMA public TO public;
|
||||||
|
|
||||||
|
|
|
||||||
28
sql/preload_libraries_warning.sql
Normal file
28
sql/preload_libraries_warning.sql
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
-- SQL tests to validate that the session_preload_libraries warning is emitted
|
||||||
|
-- whenever pg_ivm is not in session_preload_libraries.
|
||||||
|
|
||||||
|
DROP EXTENSION IF EXISTS pg_ivm CASCADE;
|
||||||
|
|
||||||
|
-- Validate that pg_ivm 1.10 cannot be created if pg_ivm is not in
|
||||||
|
-- session_preload_libraries.
|
||||||
|
ALTER SYSTEM RESET session_preload_libraries;
|
||||||
|
SELECT pg_reload_conf();
|
||||||
|
\c -
|
||||||
|
|
||||||
|
CREATE EXTENSION pg_ivm VERSION '1.9'; -- expect success
|
||||||
|
ALTER EXTENSION pg_ivm UPDATE; -- expect failure
|
||||||
|
DROP EXTENSION pg_ivm;
|
||||||
|
CREATE EXTENSION pg_ivm; -- expect failure
|
||||||
|
|
||||||
|
-- Validate that pg_ivm 1.10 can be created if pg_ivm is in
|
||||||
|
-- session_preload_libraries.
|
||||||
|
ALTER SYSTEM SET session_preload_libraries = pg_ivm;
|
||||||
|
SELECT pg_reload_conf();
|
||||||
|
\c -
|
||||||
|
|
||||||
|
CREATE EXTENSION pg_ivm VERSION '1.9'; -- expect success
|
||||||
|
ALTER EXTENSION pg_ivm UPDATE; -- expect success
|
||||||
|
DROP EXTENSION pg_ivm;
|
||||||
|
CREATE EXTENSION pg_ivm; -- expect success
|
||||||
|
|
||||||
|
DROP EXTENSION pg_ivm CASCADE;
|
||||||
Loading…
Reference in a new issue