Rename pg_verify_checksums to pg_checksums

The current tool name is too restrictive and focuses only on verifying
checksums.  As more options to control checksums for an offline cluster
are planned to be added, switch to a more generic name.  Documentation
as well as all past references to the tool are updated.

Author: Michael Paquier
Reviewed-by: Michael Banck, Fabien Coelho, Seigei Kornilov
Discussion: https://postgr.es/m/20181221201616.GD4974@nighthawk.caipicrew.dd-dns.de
This commit is contained in:
Michael Paquier 2019-03-13 10:43:20 +09:00
parent c9ae7f704c
commit 6dd263cfaa
15 changed files with 66 additions and 62 deletions

View File

@ -199,6 +199,7 @@ Complete list of usable sgml source files in this directory.
<!ENTITY pgarchivecleanup SYSTEM "pgarchivecleanup.sgml">
<!ENTITY pgBasebackup SYSTEM "pg_basebackup.sgml">
<!ENTITY pgbench SYSTEM "pgbench.sgml">
<!ENTITY pgChecksums SYSTEM "pg_checksums.sgml">
<!ENTITY pgConfig SYSTEM "pg_config-ref.sgml">
<!ENTITY pgControldata SYSTEM "pg_controldata.sgml">
<!ENTITY pgCtl SYSTEM "pg_ctl-ref.sgml">
@ -210,7 +211,6 @@ Complete list of usable sgml source files in this directory.
<!ENTITY pgResetwal SYSTEM "pg_resetwal.sgml">
<!ENTITY pgRestore SYSTEM "pg_restore.sgml">
<!ENTITY pgRewind SYSTEM "pg_rewind.sgml">
<!ENTITY pgVerifyChecksums SYSTEM "pg_verify_checksums.sgml">
<!ENTITY pgtestfsync SYSTEM "pgtestfsync.sgml">
<!ENTITY pgtesttiming SYSTEM "pgtesttiming.sgml">
<!ENTITY pgupgrade SYSTEM "pgupgrade.sgml">

View File

@ -1,27 +1,27 @@
<!--
doc/src/sgml/ref/pg_verify_checksums.sgml
doc/src/sgml/ref/pg_checksums.sgml
PostgreSQL documentation
-->
<refentry id="pgverifychecksums">
<indexterm zone="pgverifychecksums">
<primary>pg_verify_checksums</primary>
<refentry id="app-pgchecksums">
<indexterm zone="app-pgchecksums">
<primary>pg_checksums</primary>
</indexterm>
<refmeta>
<refentrytitle><application>pg_verify_checksums</application></refentrytitle>
<refentrytitle><application>pg_checksums</application></refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo>Application</refmiscinfo>
</refmeta>
<refnamediv>
<refname>pg_verify_checksums</refname>
<refname>pg_checksums</refname>
<refpurpose>verify data checksums in a <productname>PostgreSQL</productname> database cluster</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>pg_verify_checksums</command>
<command>pg_checksums</command>
<arg rep="repeat" choice="opt"><replaceable class="parameter">option</replaceable></arg>
<group choice="opt">
<group choice="opt">
@ -33,12 +33,12 @@ PostgreSQL documentation
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 id="r1-app-pg_verify_checksums-1">
<refsect1 id="r1-app-pg_checksums-1">
<title>Description</title>
<para>
<command>pg_verify_checksums</command> verifies data checksums in a
<application>pg_checksums</application> verifies data checksums in a
<productname>PostgreSQL</productname> cluster. The server must be shut
down cleanly before running <application>pg_verify_checksums</application>.
down cleanly before running <application>pg_checksums</application>.
The exit status is zero if there are no checksum errors, otherwise nonzero.
</para>
</refsect1>
@ -84,7 +84,7 @@ PostgreSQL documentation
<term><option>--version</option></term>
<listitem>
<para>
Print the <application>pg_verify_checksums</application> version and exit.
Print the <application>pg_checksums</application> version and exit.
</para>
</listitem>
</varlistentry>
@ -94,7 +94,7 @@ PostgreSQL documentation
<term><option>--help</option></term>
<listitem>
<para>
Show help about <application>pg_verify_checksums</application> command line
Show help about <application>pg_checksums</application> command line
arguments, and exit.
</para>
</listitem>

View File

@ -276,6 +276,7 @@
&initdb;
&pgarchivecleanup;
&pgChecksums;
&pgControldata;
&pgCtl;
&pgResetwal;
@ -283,7 +284,6 @@
&pgtestfsync;
&pgtesttiming;
&pgupgrade;
&pgVerifyChecksums;
&pgwaldump;
&postgres;
&postmaster;

View File

@ -190,7 +190,7 @@ static const char *excludeFiles[] =
/*
* List of files excluded from checksum validation.
*
* Note: this list should be kept in sync with what pg_verify_checksums.c
* Note: this list should be kept in sync with what pg_checksums.c
* includes.
*/
static const char *const noChecksumFiles[] = {

View File

@ -17,6 +17,7 @@ SUBDIRS = \
initdb \
pg_archivecleanup \
pg_basebackup \
pg_checksums \
pg_config \
pg_controldata \
pg_ctl \
@ -26,7 +27,6 @@ SUBDIRS = \
pg_test_fsync \
pg_test_timing \
pg_upgrade \
pg_verify_checksums \
pg_waldump \
pgbench \
psql \

View File

@ -63,12 +63,12 @@ mkdir $datadir;
command_like(['pg_controldata', $datadir],
qr/Data page checksum version:.*0/,
'checksums are disabled in control file');
# pg_verify_checksums fails with checksums disabled by default. This is
# not part of the tests included in pg_verify_checksums to save from
# pg_checksums fails with checksums disabled by default. This is
# not part of the tests included in pg_checksums to save from
# the creation of an extra instance.
command_fails(
[ 'pg_verify_checksums', '-D', $datadir],
"pg_verify_checksums fails with data checksum disabled");
[ 'pg_checksums', '-D', $datadir],
"pg_checksums fails with data checksum disabled");
command_ok([ 'initdb', '-S', $datadir ], 'sync only');
command_fails([ 'initdb', $datadir ], 'existing data directory');

3
src/bin/pg_checksums/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
/pg_checksums
/tmp_check/

View File

@ -1,38 +1,38 @@
#-------------------------------------------------------------------------
#
# Makefile for src/bin/pg_verify_checksums
# Makefile for src/bin/pg_checksums
#
# Copyright (c) 1998-2019, PostgreSQL Global Development Group
#
# src/bin/pg_verify_checksums/Makefile
# src/bin/pg_checksums/Makefile
#
#-------------------------------------------------------------------------
PGFILEDESC = "pg_verify_checksums - verify data checksums in an offline cluster"
PGFILEDESC = "pg_checksums - verify data checksums in an offline cluster"
PGAPPICON=win32
subdir = src/bin/pg_verify_checksums
subdir = src/bin/pg_checksums
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
OBJS= pg_verify_checksums.o $(WIN32RES)
OBJS= pg_checksums.o $(WIN32RES)
all: pg_verify_checksums
all: pg_checksums
pg_verify_checksums: $(OBJS) | submake-libpgport
pg_checksums: $(OBJS) | submake-libpgport
$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
install: all installdirs
$(INSTALL_PROGRAM) pg_verify_checksums$(X) '$(DESTDIR)$(bindir)/pg_verify_checksums$(X)'
$(INSTALL_PROGRAM) pg_checksums$(X) '$(DESTDIR)$(bindir)/pg_checksums$(X)'
installdirs:
$(MKDIR_P) '$(DESTDIR)$(bindir)'
uninstall:
rm -f '$(DESTDIR)$(bindir)/pg_verify_checksums$(X)'
rm -f '$(DESTDIR)$(bindir)/pg_checksums$(X)'
clean distclean maintainer-clean:
rm -f pg_verify_checksums$(X) $(OBJS)
rm -f pg_checksums$(X) $(OBJS)
rm -rf tmp_check
check:

View File

@ -0,0 +1,4 @@
# src/bin/pg_checksums/nls.mk
CATALOG_NAME = pg_checksums
AVAIL_LANGUAGES =
GETTEXT_FILES = pg_checksums.c

View File

@ -1,12 +1,16 @@
/*
* pg_verify_checksums
/*-------------------------------------------------------------------------
*
* Verifies page level checksums in an offline cluster
* pg_checksums.c
* Verifies page level checksums in an offline cluster.
*
* Copyright (c) 2010-2019, PostgreSQL Global Development Group
* Copyright (c) 2010-2019, PostgreSQL Global Development Group
*
* src/bin/pg_verify_checksums/pg_verify_checksums.c
* IDENTIFICATION
* src/bin/pg_checksums/pg_checksums.c
*
*-------------------------------------------------------------------------
*/
#include "postgres_fe.h"
#include <dirent.h>
@ -240,7 +244,7 @@ main(int argc, char *argv[])
int option_index;
bool crc_ok;
set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_verify_checksums"));
set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_checksums"));
progname = get_progname(argv[0]);
@ -253,7 +257,7 @@ main(int argc, char *argv[])
}
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
{
puts("pg_verify_checksums (PostgreSQL) " PG_VERSION);
puts("pg_checksums (PostgreSQL) " PG_VERSION);
exit(0);
}
}
@ -318,7 +322,7 @@ main(int argc, char *argv[])
if (ControlFile->pg_control_version != PG_CONTROL_VERSION)
{
fprintf(stderr, _("%s: cluster is not compatible with this version of pg_verify_checksums\n"),
fprintf(stderr, _("%s: cluster is not compatible with this version of pg_checksums\n"),
progname);
exit(1);
}

View File

@ -0,0 +1,8 @@
use strict;
use warnings;
use TestLib;
use Test::More tests => 8;
program_help_ok('pg_checksums');
program_version_ok('pg_checksums');
program_options_handling_ok('pg_checksums');

View File

@ -1,4 +1,4 @@
# Do basic sanity checks supported by pg_verify_checksums using
# Do basic sanity checks supported by pg_checksums using
# an initialized cluster.
use strict;
@ -38,7 +38,7 @@ sub check_relation_corruption
# Checksums are correct for single relfilenode as the table is not
# corrupted yet.
command_ok(['pg_verify_checksums', '-D', $pgdata,
command_ok(['pg_checksums', '-D', $pgdata,
'-r', $relfilenode_corrupted],
"succeeds for single relfilenode on tablespace $tablespace with offline cluster");
@ -49,7 +49,7 @@ sub check_relation_corruption
close $file;
# Checksum checks on single relfilenode fail
$node->command_checks_all([ 'pg_verify_checksums', '-D', $pgdata, '-r',
$node->command_checks_all([ 'pg_checksums', '-D', $pgdata, '-r',
$relfilenode_corrupted],
1,
[qr/Bad checksums:.*1/],
@ -57,7 +57,7 @@ sub check_relation_corruption
"fails with corrupted data for single relfilenode on tablespace $tablespace");
# Global checksum checks fail as well
$node->command_checks_all([ 'pg_verify_checksums', '-D', $pgdata],
$node->command_checks_all([ 'pg_checksums', '-D', $pgdata],
1,
[qr/Bad checksums:.*1/],
[qr/checksum verification failed/],
@ -67,7 +67,7 @@ sub check_relation_corruption
$node->start;
$node->safe_psql('postgres', "DROP TABLE $table;");
$node->stop;
$node->command_ok(['pg_verify_checksums', '-D', $pgdata],
$node->command_ok(['pg_checksums', '-D', $pgdata],
"succeeds again after table drop on tablespace $tablespace");
$node->start;
@ -101,12 +101,12 @@ mkdir "$pgdata/global/pgsql_tmp";
append_to_file "$pgdata/global/pgsql_tmp/1.1", "foo";
# Checksums pass on a newly-created cluster
command_ok(['pg_verify_checksums', '-D', $pgdata],
command_ok(['pg_checksums', '-D', $pgdata],
"succeeds with offline cluster");
# Checks cannot happen with an online cluster
$node->start;
command_fails(['pg_verify_checksums', '-D', $pgdata],
command_fails(['pg_checksums', '-D', $pgdata],
"fails with online cluster");
# Check corruption of table on default tablespace.
@ -121,7 +121,7 @@ $node->safe_psql('postgres',
"CREATE TABLESPACE ts_corrupt LOCATION '$tablespace_dir';");
check_relation_corruption($node, 'corrupt2', 'ts_corrupt');
# Utility routine to check that pg_verify_checksums is able to detect
# Utility routine to check that pg_checksums is able to detect
# correctly-named relation files filled with some corrupted data.
sub fail_corrupt
{
@ -133,7 +133,7 @@ sub fail_corrupt
my $file_name = "$pgdata/global/$file";
append_to_file $file_name, "foo";
$node->command_checks_all([ 'pg_verify_checksums', '-D', $pgdata],
$node->command_checks_all([ 'pg_checksums', '-D', $pgdata],
1,
[qr/^$/],
[qr/could not read block 0 in file.*$file\":/],

View File

@ -1,3 +0,0 @@
/pg_verify_checksums
/tmp_check/

View File

@ -1,4 +0,0 @@
# src/bin/pg_verify_checksums/nls.mk
CATALOG_NAME = pg_verify_checksums
AVAIL_LANGUAGES =
GETTEXT_FILES = pg_verify_checksums.c

View File

@ -1,8 +0,0 @@
use strict;
use warnings;
use TestLib;
use Test::More tests => 8;
program_help_ok('pg_verify_checksums');
program_version_ok('pg_verify_checksums');
program_options_handling_ok('pg_verify_checksums');