diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2017-11-16 11:35:02 -0500 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2017-11-16 11:35:02 -0500 |
commit | 98d54bb7790d5fb0a77173d5e5e3c655901b472c (patch) | |
tree | 6959ce8a9a5dbefdc269966a37b5c0b3d36dc904 /src/test | |
parent | 164d6338785b0b6c5a1ac30ee3e4b63bd77441ba (diff) | |
download | postgresql-98d54bb7790d5fb0a77173d5e5e3c655901b472c.tar.gz postgresql-98d54bb7790d5fb0a77173d5e5e3c655901b472c.zip |
Back out the session_start and session_end hooks feature.
It's become apparent during testing that there are problems with at
least the testing regime. I don't think we should have it without a
working test regime, and the difficulties might indicate implementation
problems anyway, so I'm backing out the whole thing until that's sorted
out.
This reverts commits 7459484 9989f92 cd8ce3a
Diffstat (limited to 'src/test')
10 files changed, 0 insertions, 218 deletions
diff --git a/src/test/modules/Makefile b/src/test/modules/Makefile index 7246552d386..b7ed0af021f 100644 --- a/src/test/modules/Makefile +++ b/src/test/modules/Makefile @@ -15,7 +15,6 @@ SUBDIRS = \ test_pg_dump \ test_rbtree \ test_rls_hooks \ - test_session_hooks \ test_shm_mq \ worker_spi diff --git a/src/test/modules/test_session_hooks/.gitignore b/src/test/modules/test_session_hooks/.gitignore deleted file mode 100644 index 5dcb3ff9723..00000000000 --- a/src/test/modules/test_session_hooks/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Generated subdirectories -/log/ -/results/ -/tmp_check/ diff --git a/src/test/modules/test_session_hooks/Makefile b/src/test/modules/test_session_hooks/Makefile deleted file mode 100644 index 636ae61c0e1..00000000000 --- a/src/test/modules/test_session_hooks/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# src/test/modules/test_session_hooks/Makefile - -MODULES = test_session_hooks -PGFILEDESC = "test_session_hooks - Test session hooks with an extension" - -EXTENSION = test_session_hooks -DATA = test_session_hooks--1.0.sql - -REGRESS = test_session_hooks -REGRESS_OPTS = --temp-config=$(top_srcdir)/src/test/modules/test_session_hooks/session_hooks.conf - -ifdef USE_PGXS -PG_CONFIG = pg_config -PGXS := $(shell $(PG_CONFIG) --pgxs) -include $(PGXS) -else -subdir = src/test/modules/test_session_hooks -top_builddir = ../../../.. -include $(top_builddir)/src/Makefile.global -include $(top_srcdir)/contrib/contrib-global.mk -endif - -# override installcheck - this module requires preloading the test module -installcheck: - @echo Cannot run $@ for test_session_hooks. Run "'make check'" instead. diff --git a/src/test/modules/test_session_hooks/README b/src/test/modules/test_session_hooks/README deleted file mode 100644 index 9cb42020c64..00000000000 --- a/src/test/modules/test_session_hooks/README +++ /dev/null @@ -1,2 +0,0 @@ -test_session_hooks is an example of how to use session start and end -hooks. diff --git a/src/test/modules/test_session_hooks/expected/test_session_hooks.out b/src/test/modules/test_session_hooks/expected/test_session_hooks.out deleted file mode 100644 index be1b94953c5..00000000000 --- a/src/test/modules/test_session_hooks/expected/test_session_hooks.out +++ /dev/null @@ -1,31 +0,0 @@ -CREATE ROLE regress_sess_hook_usr1 SUPERUSER LOGIN; -CREATE ROLE regress_sess_hook_usr2 SUPERUSER LOGIN; -\set prevdb :DBNAME -\set prevusr :USER -CREATE TABLE session_hook_log(id SERIAL, dbname TEXT, username TEXT, hook_at TEXT); -SELECT * FROM session_hook_log ORDER BY id; - id | dbname | username | hook_at -----+--------+----------+--------- -(0 rows) - -\c :prevdb regress_sess_hook_usr1 -SELECT * FROM session_hook_log ORDER BY id; - id | dbname | username | hook_at -----+--------+----------+--------- -(0 rows) - -\c :prevdb regress_sess_hook_usr2 -SELECT * FROM session_hook_log ORDER BY id; - id | dbname | username | hook_at -----+--------------------+------------------------+--------- - 1 | contrib_regression | regress_sess_hook_usr2 | START -(1 row) - -\c :prevdb :prevusr -SELECT * FROM session_hook_log ORDER BY id; - id | dbname | username | hook_at -----+--------------------+------------------------+--------- - 1 | contrib_regression | regress_sess_hook_usr2 | START - 2 | contrib_regression | regress_sess_hook_usr2 | END -(2 rows) - diff --git a/src/test/modules/test_session_hooks/session_hooks.conf b/src/test/modules/test_session_hooks/session_hooks.conf deleted file mode 100644 index fc62b4adef0..00000000000 --- a/src/test/modules/test_session_hooks/session_hooks.conf +++ /dev/null @@ -1,2 +0,0 @@ -shared_preload_libraries = 'test_session_hooks' -test_session_hooks.username = regress_sess_hook_usr2 diff --git a/src/test/modules/test_session_hooks/sql/test_session_hooks.sql b/src/test/modules/test_session_hooks/sql/test_session_hooks.sql deleted file mode 100644 index 5e0864753d9..00000000000 --- a/src/test/modules/test_session_hooks/sql/test_session_hooks.sql +++ /dev/null @@ -1,12 +0,0 @@ -CREATE ROLE regress_sess_hook_usr1 SUPERUSER LOGIN; -CREATE ROLE regress_sess_hook_usr2 SUPERUSER LOGIN; -\set prevdb :DBNAME -\set prevusr :USER -CREATE TABLE session_hook_log(id SERIAL, dbname TEXT, username TEXT, hook_at TEXT); -SELECT * FROM session_hook_log ORDER BY id; -\c :prevdb regress_sess_hook_usr1 -SELECT * FROM session_hook_log ORDER BY id; -\c :prevdb regress_sess_hook_usr2 -SELECT * FROM session_hook_log ORDER BY id; -\c :prevdb :prevusr -SELECT * FROM session_hook_log ORDER BY id; diff --git a/src/test/modules/test_session_hooks/test_session_hooks--1.0.sql b/src/test/modules/test_session_hooks/test_session_hooks--1.0.sql deleted file mode 100644 index 16bcee9882e..00000000000 --- a/src/test/modules/test_session_hooks/test_session_hooks--1.0.sql +++ /dev/null @@ -1,4 +0,0 @@ -/* src/test/modules/test_hook_session/test_hook_session--1.0.sql */ - --- complain if script is sourced in psql, rather than via CREATE EXTENSION -\echo Use "CREATE EXTENSION test_hook_session" to load this file. \quit diff --git a/src/test/modules/test_session_hooks/test_session_hooks.c b/src/test/modules/test_session_hooks/test_session_hooks.c deleted file mode 100644 index 4e2eef183e4..00000000000 --- a/src/test/modules/test_session_hooks/test_session_hooks.c +++ /dev/null @@ -1,134 +0,0 @@ -/* ------------------------------------------------------------------------- - * - * test_session_hooks.c - * Code for testing SESSION hooks. - * - * Copyright (c) 2010-2017, PostgreSQL Global Development Group - * - * IDENTIFICATION - * src/test/modules/test_session_hooks/test_session_hooks.c - * - * ------------------------------------------------------------------------- - */ -#include "postgres.h" - -#include "access/xact.h" -#include "commands/dbcommands.h" -#include "executor/spi.h" -#include "lib/stringinfo.h" -#include "miscadmin.h" -#include "tcop/tcopprot.h" -#include "utils/snapmgr.h" -#include "utils/builtins.h" - -PG_MODULE_MAGIC; - -/* Entry point of library loading/unloading */ -void _PG_init(void); -void _PG_fini(void); - -/* GUC variables */ -static char *session_hook_username = "postgres"; - -/* Original Hook */ -static session_start_hook_type prev_session_start_hook = NULL; -static session_end_hook_type prev_session_end_hook = NULL; - -static void -register_session_hook(const char *hook_at) -{ - const char *username; - - StartTransactionCommand(); - SPI_connect(); - PushActiveSnapshot(GetTransactionSnapshot()); - - username = GetUserNameFromId(GetUserId(), false); - - /* Register log just for configured username */ - if (!strcmp(username, session_hook_username)) - { - const char *dbname; - int ret; - StringInfoData buf; - - dbname = get_database_name(MyDatabaseId); - - initStringInfo(&buf); - - appendStringInfo(&buf, "INSERT INTO session_hook_log (dbname, username, hook_at) "); - appendStringInfo(&buf, "VALUES ('%s', '%s', '%s');", - dbname, username, hook_at); - - ret = SPI_exec(buf.data, 0); - if (ret != SPI_OK_INSERT) - elog(ERROR, "SPI_execute failed: error code %d", ret); - } - - SPI_finish(); - PopActiveSnapshot(); - CommitTransactionCommand(); -} - -/* sample session start hook function */ -static void -sample_session_start_hook() -{ - /* Hook just normal backends */ - if (MyBackendId != InvalidBackendId) - { - (void) register_session_hook("START"); - - if (prev_session_start_hook) - prev_session_start_hook(); - } -} - -/* sample session end hook function */ -static void -sample_session_end_hook() -{ - /* Hook just normal backends */ - if (MyBackendId != InvalidBackendId) - { - if (prev_session_end_hook) - prev_session_end_hook(); - - (void) register_session_hook("END"); - } -} - -/* - * Module Load Callback - */ -void -_PG_init(void) -{ - /* Save Hooks for Unload */ - prev_session_start_hook = session_start_hook; - prev_session_end_hook = session_end_hook; - - /* Set New Hooks */ - session_start_hook = sample_session_start_hook; - session_end_hook = sample_session_end_hook; - - /* Load GUCs */ - DefineCustomStringVariable("test_session_hooks.username", - "Username to register log on session start or end", - NULL, - &session_hook_username, - "postgres", - PGC_SIGHUP, - 0, NULL, NULL, NULL); -} - -/* - * Module Unload Callback - */ -void -_PG_fini(void) -{ - /* Uninstall Hooks */ - session_start_hook = prev_session_start_hook; - session_end_hook = prev_session_end_hook; -} diff --git a/src/test/modules/test_session_hooks/test_session_hooks.control b/src/test/modules/test_session_hooks/test_session_hooks.control deleted file mode 100644 index 7d7ef9f3f4a..00000000000 --- a/src/test/modules/test_session_hooks/test_session_hooks.control +++ /dev/null @@ -1,3 +0,0 @@ -comment = 'Test start/end hook session with an extension' -default_version = '1.0' -relocatable = true |