mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-25 13:17:41 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| # Copyright (c) 2023-2025, 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();
 |