diff --git a/doc/src/sgml/ref/pg_verify_checksums.sgml b/doc/src/sgml/ref/pg_verify_checksums.sgml
index 3416955ec94..c4c15a46bac 100644
--- a/doc/src/sgml/ref/pg_verify_checksums.sgml
+++ b/doc/src/sgml/ref/pg_verify_checksums.sgml
@@ -23,7 +23,7 @@ PostgreSQL documentation
pg_verify_checksums
option
- datadir
+ datadir
@@ -45,6 +45,7 @@ PostgreSQL documentation
+
Specifies the directory where the database cluster is stored.
diff --git a/src/bin/pg_verify_checksums/pg_verify_checksums.c b/src/bin/pg_verify_checksums/pg_verify_checksums.c
index 845d5aba27e..48e754822cd 100644
--- a/src/bin/pg_verify_checksums/pg_verify_checksums.c
+++ b/src/bin/pg_verify_checksums/pg_verify_checksums.c
@@ -41,11 +41,11 @@ usage()
printf(_("Usage:\n"));
printf(_(" %s [OPTION] [DATADIR]\n"), progname);
printf(_("\nOptions:\n"));
- printf(_(" [-D] DATADIR data directory\n"));
- printf(_(" -r relfilenode check only relation with specified relfilenode\n"));
- printf(_(" -d debug output, listing all checked blocks\n"));
- printf(_(" -V, --version output version information, then exit\n"));
- printf(_(" -?, --help show this help, then exit\n"));
+ printf(_(" [-D, --pgdata=]DATADIR data directory\n"));
+ printf(_(" -r relfilenode check only relation with specified relfilenode\n"));
+ printf(_(" -d debug output, listing all checked blocks\n"));
+ printf(_(" -V, --version output version information, then exit\n"));
+ printf(_(" -?, --help show this help, then exit\n"));
printf(_("\nIf no data directory (DATADIR) is specified, "
"the environment variable PGDATA\nis used.\n\n"));
printf(_("Report bugs to .\n"));
@@ -205,8 +205,14 @@ scan_directory(char *basedir, char *subdir)
int
main(int argc, char *argv[])
{
+ static struct option long_options[] = {
+ {"pgdata", required_argument, NULL, 'D'},
+ {NULL, 0, NULL, 0}
+ };
+
char *DataDir = NULL;
int c;
+ int option_index;
bool crc_ok;
set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_verify_checksums"));
@@ -227,7 +233,7 @@ main(int argc, char *argv[])
}
}
- while ((c = getopt(argc, argv, "D:r:d")) != -1)
+ while ((c = getopt_long(argc, argv, "D:r:d", long_options, &option_index)) != -1)
{
switch (c)
{