postgresql/contrib/pg_stat_statements/t/010_restart.pl
Bruce Momjian 29275b1d17 Update copyright for 2024
Reported-by: Michael Paquier

Discussion: https://postgr.es/m/ZZKTDPxBBMt3C0J9@paquier.xyz

Backpatch-through: 12
2024-01-03 20:49:05 -05:00

54 lines
1.4 KiB
Perl

# Copyright (c) 2023-2024, PostgreSQL Global Development Group
# Tests for checking that pg_stat_statements contents are preserved
# across restarts.
use strict;
use warnings FATAL => 'all';
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();