mirror of https://github.com/postgres/postgres
This tests that pg_stat_statement contents are successfully kept across restart. (This similar to src/test/recovery/t/029_stats_restart.pl for the stats collector.) Reviewed-by: Michael Paquier <michael@paquier.xyz> Reviewed-by: Julien Rouhaud <rjuju123@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/40d1e4f2-835f-448f-a541-8ff5db75bf3d@eisentraut.orgpull/151/head
parent
742f6b3e6d
commit
4710b67d4d
@ -0,0 +1,53 @@ |
||||
# Copyright (c) 2023, PostgreSQL Global Development Group |
||||
|
||||
# Tests for checking that pg_stat_statements contents are preserved |
||||
# across restarts. |
||||
|
||||
use strict; |
||||
use warnings; |
||||
use PostgreSQL::Test::Cluster; |
||||
use PostgreSQL::Test::Utils; |
||||
use Test::More; |
||||
|
||||
my $node = PostgreSQL::Test::Cluster->new('main'); |
||||
$node->init; |
||||
$node->append_conf('postgresql.conf', |
||||
"shared_preload_libraries = 'pg_stat_statements'"); |
||||
$node->start; |
||||
|
||||
$node->safe_psql('postgres', 'CREATE EXTENSION pg_stat_statements'); |
||||
|
||||
$node->safe_psql('postgres', 'CREATE TABLE t1 (a int)'); |
||||
$node->safe_psql('postgres', 'SELECT a FROM t1'); |
||||
|
||||
is( $node->safe_psql( |
||||
'postgres', |
||||
"SELECT query FROM pg_stat_statements WHERE query NOT LIKE '%pg_stat_statements%' ORDER BY query" |
||||
), |
||||
"CREATE TABLE t1 (a int)\nSELECT a FROM t1", |
||||
'pg_stat_statements populated'); |
||||
|
||||
$node->restart; |
||||
|
||||
is( $node->safe_psql( |
||||
'postgres', |
||||
"SELECT query FROM pg_stat_statements WHERE query NOT LIKE '%pg_stat_statements%' ORDER BY query" |
||||
), |
||||
"CREATE TABLE t1 (a int)\nSELECT a FROM t1", |
||||
'pg_stat_statements data kept across restart'); |
||||
|
||||
$node->append_conf('postgresql.conf', "pg_stat_statements.save = false"); |
||||
$node->reload; |
||||
|
||||
$node->restart; |
||||
|
||||
is( $node->safe_psql( |
||||
'postgres', |
||||
"SELECT count(*) FROM pg_stat_statements WHERE query NOT LIKE '%pg_stat_statements%'" |
||||
), |
||||
'0', |
||||
'pg_stat_statements data not kept across restart with .save=false'); |
||||
|
||||
$node->stop; |
||||
|
||||
done_testing(); |
Loading…
Reference in new issue