51 lines
1.7 KiB
SQL
51 lines
1.7 KiB
SQL
-- 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
|
|
|
|
-- Verify that the warning is emitted when each SQL function is called.
|
|
ALTER SYSTEM RESET session_preload_libraries;
|
|
SELECT pg_reload_conf();
|
|
\c -
|
|
|
|
CREATE TABLE mytab (i int primary key, a text);
|
|
SELECT pgivm.create_immv('myview', 'SELECT i, reverse(a) FROM mytab');
|
|
SELECT pgivm.refresh_immv('myview', true);
|
|
SELECT pgivm.get_immv_def('myview');
|
|
|
|
-- Verify that the warning is emitted by the maintenance triggers.
|
|
INSERT INTO mytab VALUES (1, 'asdf');
|
|
|
|
-- Verify that the warning is not emitted after pg_ivm is added to
|
|
-- session_preload_libraries.
|
|
ALTER SYSTEM SET session_preload_libraries = pg_ivm;
|
|
SELECT pg_reload_conf();
|
|
\c -
|
|
|
|
SELECT pgivm.create_immv('myview2', 'SELECT i, reverse(a) FROM mytab');
|
|
SELECT pgivm.refresh_immv('myview2', true);
|
|
SELECT pgivm.get_immv_def('myview2');
|
|
INSERT INTO mytab VALUES (2, 'qwer');
|
|
|