1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-19 17:02:53 +03:00

vacuumdb: Add option for analyzing only relations missing stats.

This commit adds a new --missing-stats-only option that can be used
with --analyze-only or --analyze-in-stages.  When this option is
specified, vacuumdb will analyze a relation if it lacks any
statistics for a column, expression index, or extended statistics
object.  This new option is primarily intended for use after
pg_upgrade (since it can now retain most optimizer statistics), but
it might be useful in other situations, too.

Author: Corey Huinker <corey.huinker@gmail.com>
Co-authored-by: Nathan Bossart <nathandbossart@gmail.com>
Reviewed-by: John Naylor <johncnaylorls@gmail.com>
Discussion: https://postgr.es/m/Z5O1bpcwDrMgyrYy%40nathan
This commit is contained in:
Nathan Bossart
2025-03-18 16:32:56 -05:00
parent 9c03c8d187
commit edba754f05
4 changed files with 215 additions and 2 deletions

View File

@@ -2849,6 +2849,33 @@ sub issues_sql_like
=pod
=item $node->issues_sql_unlike(cmd, unexpected_sql, test_name)
Run a command on the node, then verify that $unexpected_sql does not appear in
the server log file.
=cut
sub issues_sql_unlike
{
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($self, $cmd, $unexpected_sql, $test_name) = @_;
local %ENV = $self->_get_env();
my $log_location = -s $self->logfile;
my $result = PostgreSQL::Test::Utils::run_log($cmd);
ok($result, "@$cmd exit code 0");
my $log =
PostgreSQL::Test::Utils::slurp_file($self->logfile, $log_location);
unlike($log, $unexpected_sql, "$test_name: SQL not found in server log");
return;
}
=pod
=item $node->log_content()
Returns the contents of log of the node