Fix new Object Access hooks test

Commit 90efa2f556 caused some issues with EXEC_BACKEND builds and with
force_parallel_mode = regress setups. For the first issue we no longer
test if the module has been preloaded, and in fact we don't preload it,
but simply LOAD it in the test script. For the second issue we suppress
error messages emanating from parallel workers.

Mark Dilger

Discussion: https://postgr.es/m/7f6d54a1-4024-3b6e-e3ec-26cd394aac9e@dunslane.net
This commit is contained in:
Andrew Dunstan 2022-03-22 13:27:26 -04:00
parent 097786fbbb
commit f0206d9952
5 changed files with 4 additions and 14 deletions

View File

@ -7,9 +7,6 @@ OBJS = \
PGFILEDESC = "test_oat_hooks - example use of object access hooks"
REGRESS = test_oat_hooks
REGRESS_OPTS = --temp-config=$(top_srcdir)/src/test/modules/test_oat_hooks/test_oat_hooks.conf
# Disabled because these tests require "shared_preload_libraries=test_oat_hooks",
# which typical installcheck users do not have (e.g. buildfarm clients).
NO_INSTALLCHECK = 1
ifdef USE_PGXS

View File

@ -2,6 +2,7 @@
-- object_access_hook_str. Since the auditing GUC starts out false, we miss the
-- initial "attempting" audit message from the ProcessUtility_hook, but we
-- should thereafter see the audit messages
LOAD 'test_oat_hooks';
SET test_oat_hooks.audit = true;
NOTICE: in object_access_hook_str: superuser attempting alter (set) [test_oat_hooks.audit]
NOTICE: in object_access_hook_str: superuser finished alter (set) [test_oat_hooks.audit]

View File

@ -2,6 +2,7 @@
-- object_access_hook_str. Since the auditing GUC starts out false, we miss the
-- initial "attempting" audit message from the ProcessUtility_hook, but we
-- should thereafter see the audit messages
LOAD 'test_oat_hooks';
SET test_oat_hooks.audit = true;
-- Create objects for use in the test

View File

@ -13,6 +13,7 @@
#include "postgres.h"
#include "access/parallel.h"
#include "catalog/dependency.h"
#include "catalog/objectaccess.h"
#include "catalog/pg_proc.h"
@ -68,15 +69,6 @@ void _PG_fini(void);
void
_PG_init(void)
{
/*
* We allow to load the Object Access Type test module on single-user-mode
* or shared_preload_libraries settings only.
*/
if (IsUnderPostmaster)
ereport(ERROR,
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("test_oat_hooks must be loaded via shared_preload_libraries")));
/*
* test_oat_hooks.deny_set_variable = (on|off)
*/
@ -200,7 +192,7 @@ _PG_fini(void)
static void
emit_audit_message(const char *type, const char *hook, char *action, char *objName)
{
if (REGRESS_audit)
if (REGRESS_audit && !IsParallelWorker())
{
const char *who = superuser_arg(GetUserId()) ? "superuser" : "non-superuser";

View File

@ -1 +0,0 @@
shared_preload_libraries = test_oat_hooks