Split event_trigger_login test from event_trigger test
That allows to still run event_trigger test in parallel with oidjoins test, and save ~50ms of tests runtime. Discussion: https://postgr.es/m/202310271047.mnwkql6nhbwi%40alvherre.pgsql Author: Alvaro Herrera, Alexander Korotkov
This commit is contained in:
parent
c6cf6d353c
commit
8b62b441ff
@ -638,48 +638,3 @@ NOTICE: DROP POLICY dropped policy
|
|||||||
CREATE POLICY pguc ON event_trigger_test USING (FALSE);
|
CREATE POLICY pguc ON event_trigger_test USING (FALSE);
|
||||||
SET event_triggers = 'off';
|
SET event_triggers = 'off';
|
||||||
DROP POLICY pguc ON event_trigger_test;
|
DROP POLICY pguc ON event_trigger_test;
|
||||||
-- Login event triggers
|
|
||||||
CREATE TABLE user_logins(id serial, who text);
|
|
||||||
GRANT SELECT ON user_logins TO public;
|
|
||||||
CREATE FUNCTION on_login_proc() RETURNS event_trigger AS $$
|
|
||||||
BEGIN
|
|
||||||
INSERT INTO user_logins (who) VALUES (SESSION_USER);
|
|
||||||
RAISE NOTICE 'You are welcome!';
|
|
||||||
END;
|
|
||||||
$$ LANGUAGE plpgsql;
|
|
||||||
CREATE EVENT TRIGGER on_login_trigger ON login EXECUTE PROCEDURE on_login_proc();
|
|
||||||
ALTER EVENT TRIGGER on_login_trigger ENABLE ALWAYS;
|
|
||||||
\c
|
|
||||||
NOTICE: You are welcome!
|
|
||||||
SELECT COUNT(*) FROM user_logins;
|
|
||||||
count
|
|
||||||
-------
|
|
||||||
1
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
\c
|
|
||||||
NOTICE: You are welcome!
|
|
||||||
SELECT COUNT(*) FROM user_logins;
|
|
||||||
count
|
|
||||||
-------
|
|
||||||
2
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
-- Check dathasloginevt in system catalog
|
|
||||||
SELECT dathasloginevt FROM pg_database WHERE datname= :'DBNAME';
|
|
||||||
dathasloginevt
|
|
||||||
----------------
|
|
||||||
t
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
-- Cleanup
|
|
||||||
DROP TABLE user_logins;
|
|
||||||
DROP EVENT TRIGGER on_login_trigger;
|
|
||||||
DROP FUNCTION on_login_proc();
|
|
||||||
\c
|
|
||||||
SELECT dathasloginevt FROM pg_database WHERE datname= :'DBNAME';
|
|
||||||
dathasloginevt
|
|
||||||
----------------
|
|
||||||
f
|
|
||||||
(1 row)
|
|
||||||
|
|
||||||
|
45
src/test/regress/expected/event_trigger_login.out
Normal file
45
src/test/regress/expected/event_trigger_login.out
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
-- Login event triggers
|
||||||
|
CREATE TABLE user_logins(id serial, who text);
|
||||||
|
GRANT SELECT ON user_logins TO public;
|
||||||
|
CREATE FUNCTION on_login_proc() RETURNS event_trigger AS $$
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO user_logins (who) VALUES (SESSION_USER);
|
||||||
|
RAISE NOTICE 'You are welcome!';
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
CREATE EVENT TRIGGER on_login_trigger ON login EXECUTE PROCEDURE on_login_proc();
|
||||||
|
ALTER EVENT TRIGGER on_login_trigger ENABLE ALWAYS;
|
||||||
|
\c
|
||||||
|
NOTICE: You are welcome!
|
||||||
|
SELECT COUNT(*) FROM user_logins;
|
||||||
|
count
|
||||||
|
-------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\c
|
||||||
|
NOTICE: You are welcome!
|
||||||
|
SELECT COUNT(*) FROM user_logins;
|
||||||
|
count
|
||||||
|
-------
|
||||||
|
2
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- Check dathasloginevt in system catalog
|
||||||
|
SELECT dathasloginevt FROM pg_database WHERE datname= :'DBNAME';
|
||||||
|
dathasloginevt
|
||||||
|
----------------
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
-- Cleanup
|
||||||
|
DROP TABLE user_logins;
|
||||||
|
DROP EVENT TRIGGER on_login_trigger;
|
||||||
|
DROP FUNCTION on_login_proc();
|
||||||
|
\c
|
||||||
|
SELECT dathasloginevt FROM pg_database WHERE datname= :'DBNAME';
|
||||||
|
dathasloginevt
|
||||||
|
----------------
|
||||||
|
f
|
||||||
|
(1 row)
|
||||||
|
|
@ -121,12 +121,14 @@ test: plancache limit plpgsql copy2 temp domain rangefuncs prepare conversion tr
|
|||||||
# ----------
|
# ----------
|
||||||
test: partition_join partition_prune reloptions hash_part indexing partition_aggregate partition_info tuplesort explain compression memoize stats
|
test: partition_join partition_prune reloptions hash_part indexing partition_aggregate partition_info tuplesort explain compression memoize stats
|
||||||
|
|
||||||
# event_trigger cannot run concurrently with any other tests because
|
# event_trigger depends on create_am and cannot run concurrently with
|
||||||
# on-login event handling could catch connection of a concurrent test.
|
# any test that runs DDL
|
||||||
test: event_trigger
|
# oidjoins is read-only, though, and should run late for best coverage
|
||||||
|
test: oidjoins event_trigger
|
||||||
|
|
||||||
# oidjoins should run late for best coverage
|
# event_trigger_login cannot run concurrently with any other tests because
|
||||||
test: oidjoins
|
# on-login event handling could catch connection of a concurrent test.
|
||||||
|
test: event_trigger_login
|
||||||
|
|
||||||
# this test also uses event triggers, so likewise run it by itself
|
# this test also uses event triggers, so likewise run it by itself
|
||||||
test: fast_default
|
test: fast_default
|
||||||
|
@ -495,29 +495,3 @@ DROP POLICY pguc ON event_trigger_test;
|
|||||||
CREATE POLICY pguc ON event_trigger_test USING (FALSE);
|
CREATE POLICY pguc ON event_trigger_test USING (FALSE);
|
||||||
SET event_triggers = 'off';
|
SET event_triggers = 'off';
|
||||||
DROP POLICY pguc ON event_trigger_test;
|
DROP POLICY pguc ON event_trigger_test;
|
||||||
|
|
||||||
-- Login event triggers
|
|
||||||
CREATE TABLE user_logins(id serial, who text);
|
|
||||||
GRANT SELECT ON user_logins TO public;
|
|
||||||
CREATE FUNCTION on_login_proc() RETURNS event_trigger AS $$
|
|
||||||
BEGIN
|
|
||||||
INSERT INTO user_logins (who) VALUES (SESSION_USER);
|
|
||||||
RAISE NOTICE 'You are welcome!';
|
|
||||||
END;
|
|
||||||
$$ LANGUAGE plpgsql;
|
|
||||||
CREATE EVENT TRIGGER on_login_trigger ON login EXECUTE PROCEDURE on_login_proc();
|
|
||||||
ALTER EVENT TRIGGER on_login_trigger ENABLE ALWAYS;
|
|
||||||
\c
|
|
||||||
SELECT COUNT(*) FROM user_logins;
|
|
||||||
\c
|
|
||||||
SELECT COUNT(*) FROM user_logins;
|
|
||||||
|
|
||||||
-- Check dathasloginevt in system catalog
|
|
||||||
SELECT dathasloginevt FROM pg_database WHERE datname= :'DBNAME';
|
|
||||||
|
|
||||||
-- Cleanup
|
|
||||||
DROP TABLE user_logins;
|
|
||||||
DROP EVENT TRIGGER on_login_trigger;
|
|
||||||
DROP FUNCTION on_login_proc();
|
|
||||||
\c
|
|
||||||
SELECT dathasloginevt FROM pg_database WHERE datname= :'DBNAME';
|
|
||||||
|
25
src/test/regress/sql/event_trigger_login.sql
Normal file
25
src/test/regress/sql/event_trigger_login.sql
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
-- Login event triggers
|
||||||
|
CREATE TABLE user_logins(id serial, who text);
|
||||||
|
GRANT SELECT ON user_logins TO public;
|
||||||
|
CREATE FUNCTION on_login_proc() RETURNS event_trigger AS $$
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO user_logins (who) VALUES (SESSION_USER);
|
||||||
|
RAISE NOTICE 'You are welcome!';
|
||||||
|
END;
|
||||||
|
$$ LANGUAGE plpgsql;
|
||||||
|
CREATE EVENT TRIGGER on_login_trigger ON login EXECUTE PROCEDURE on_login_proc();
|
||||||
|
ALTER EVENT TRIGGER on_login_trigger ENABLE ALWAYS;
|
||||||
|
\c
|
||||||
|
SELECT COUNT(*) FROM user_logins;
|
||||||
|
\c
|
||||||
|
SELECT COUNT(*) FROM user_logins;
|
||||||
|
|
||||||
|
-- Check dathasloginevt in system catalog
|
||||||
|
SELECT dathasloginevt FROM pg_database WHERE datname= :'DBNAME';
|
||||||
|
|
||||||
|
-- Cleanup
|
||||||
|
DROP TABLE user_logins;
|
||||||
|
DROP EVENT TRIGGER on_login_trigger;
|
||||||
|
DROP FUNCTION on_login_proc();
|
||||||
|
\c
|
||||||
|
SELECT dathasloginevt FROM pg_database WHERE datname= :'DBNAME';
|
Loading…
x
Reference in New Issue
Block a user