pg_ivm/expected/preload_libraries_warning.out

124 lines
4.7 KiB
Text
Raw Normal View History

2025-03-04 22:39:28 +00:00
-- 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_17637 on table t
drop cascades to trigger IVM_trigger_del_before_17638 on table t
drop cascades to trigger IVM_trigger_upd_before_17639 on table t
drop cascades to trigger IVM_trigger_truncate_before_17640 on table t
drop cascades to trigger IVM_trigger_ins_after_17641 on table t
drop cascades to trigger IVM_trigger_del_after_17642 on table t
drop cascades to trigger IVM_trigger_upd_after_17643 on table t
drop cascades to trigger IVM_trigger_truncate_after_17644 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
-- Verify that the warning is emitted when each SQL function is called.
ALTER SYSTEM RESET session_preload_libraries;
SELECT pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)
\c -
CREATE TABLE mytab (i int primary key, a text);
SELECT pgivm.create_immv('myview', 'SELECT i, reverse(a) FROM mytab');
WARNING: 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.
NOTICE: created index "myview_index" on immv "myview"
create_immv
-------------
0
(1 row)
SELECT pgivm.refresh_immv('myview', true);
WARNING: 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.
refresh_immv
--------------
0
(1 row)
SELECT pgivm.get_immv_def('myview');
WARNING: 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.
get_immv_def
---------------------------
SELECT i, +
reverse(a) AS reverse+
FROM mytab
(1 row)
-- Verify that the warning is emitted by the maintenance triggers.
INSERT INTO mytab VALUES (1, 'asdf');
WARNING: 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.
-- 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();
pg_reload_conf
----------------
t
(1 row)
\c -
SELECT pgivm.create_immv('myview2', 'SELECT i, reverse(a) FROM mytab');
NOTICE: created index "myview2_index" on immv "myview2"
create_immv
-------------
1
(1 row)
SELECT pgivm.refresh_immv('myview2', true);
refresh_immv
--------------
1
(1 row)
SELECT pgivm.get_immv_def('myview2');
get_immv_def
---------------------------
SELECT i, +
reverse(a) AS reverse+
FROM mytab
(1 row)
INSERT INTO mytab VALUES (2, 'qwer');