mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Fix new auto_explain test case for Windows.
In commit 7c34555f8, I overlooked the need to configure SSPI on Windows to allow login as the non-superuser role. Fix that by adding auth_extra/--create-role incantation (which, oddly enough, doesn't actually create the role). Per buildfarm. While here, upgrade the mechanism for temporarily setting $ENV{PGUSER}, as per recommendation from ilmari. Discussion: https://postgr.es/m/87edy7j1zz.fsf@wibble.ilmari.org
This commit is contained in:
parent
a0c632c1de
commit
1d01d19853
@ -28,7 +28,7 @@ sub query_log
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $node = PostgreSQL::Test::Cluster->new('main');
|
my $node = PostgreSQL::Test::Cluster->new('main');
|
||||||
$node->init;
|
$node->init('auth_extra' => [ '--create-role', 'regress_user1' ]);
|
||||||
$node->append_conf('postgresql.conf',
|
$node->append_conf('postgresql.conf',
|
||||||
"session_preload_libraries = 'auto_explain'");
|
"session_preload_libraries = 'auto_explain'");
|
||||||
$node->append_conf('postgresql.conf', "auto_explain.log_min_duration = 0");
|
$node->append_conf('postgresql.conf', "auto_explain.log_min_duration = 0");
|
||||||
@ -115,29 +115,30 @@ CREATE USER regress_user1;
|
|||||||
GRANT SET ON PARAMETER auto_explain.log_format TO regress_user1;
|
GRANT SET ON PARAMETER auto_explain.log_format TO regress_user1;
|
||||||
});
|
});
|
||||||
|
|
||||||
$ENV{PGUSER} = "regress_user1";
|
{
|
||||||
|
local $ENV{PGUSER} = "regress_user1";
|
||||||
|
|
||||||
$log_contents = query_log(
|
$log_contents = query_log(
|
||||||
$node,
|
$node,
|
||||||
"SELECT * FROM pg_database;",
|
"SELECT * FROM pg_database;",
|
||||||
{ "auto_explain.log_format" => "json" });
|
{ "auto_explain.log_format" => "json" });
|
||||||
|
|
||||||
like(
|
like(
|
||||||
$log_contents,
|
$log_contents,
|
||||||
qr/"Query Text": "SELECT \* FROM pg_database;"/,
|
qr/"Query Text": "SELECT \* FROM pg_database;"/,
|
||||||
"query text logged, json mode selected by non-superuser");
|
"query text logged, json mode selected by non-superuser");
|
||||||
|
|
||||||
$log_contents = query_log(
|
$log_contents = query_log(
|
||||||
$node,
|
$node,
|
||||||
"SELECT * FROM pg_database;",
|
"SELECT * FROM pg_database;",
|
||||||
{ "auto_explain.log_level" => "log" });
|
{ "auto_explain.log_level" => "log" });
|
||||||
|
|
||||||
like(
|
like(
|
||||||
$log_contents,
|
$log_contents,
|
||||||
qr/WARNING: permission denied to set parameter "auto_explain\.log_level"/,
|
qr/WARNING: permission denied to set parameter "auto_explain\.log_level"/,
|
||||||
"permission failure logged");
|
"permission failure logged");
|
||||||
|
|
||||||
$ENV{PGUSER} = undef;
|
} # end queries run as regress_user1
|
||||||
|
|
||||||
$node->safe_psql(
|
$node->safe_psql(
|
||||||
"postgres", q{
|
"postgres", q{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user