On Tue, Dec 27, 2016 at 01:28:17PM +0900, Michael Paquier wrote:
> On Tue, Dec 27, 2016 at 6:56 AM, Bruce Momjian <br...@momjian.us> wrote:
> > I have found that pg_xlogdump looks for WAL files in the in the current
> > directory and the pg_wal subdirectory of both  the current directory and
> > the PGDATA directory.  Doc patch attached.
> 
> The whole behavior is listed in pg_xlogdump.c here:
> /*
>  * Try to find the file in several places:
>  * if directory == NULL:
>  *       fname
>  *       XLOGDIR / fname
>  *       $PGDATA / XLOGDIR / fname
>  * else
>  *       directory / fname
>  *       directory / XLOGDIR / fname
>  *
>  * return a read only fd
>  */
> static int
> fuzzy_open_file(const char *directory, const char *fname)
> 
> Updating the docs the way your patch does does not look enough IMO:

OK.

> 1) pg_xlogdump --help should mention PGDATA as well for the default
> behavior, and should make clear the default and when -p is defined:
>   -p, --path=PATH        directory in which to find log segment files
>                          (default: ./pg_wal)

Ah, good point. The new output is:

  -p, --path=PATH   directory in which to find log segment files
                    (default: current directory, ./pg_wal, $PGDATA/pg_wal)

> 2) The documentation does not mention that if a directory is defined
> pg_xlogdump will try to look as well at defined_dir/pg_wal.

Uh, I think it does in the first sentence:

        Directory in which to find log segment files.

Updated patch attached.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +
diff --git a/doc/src/sgml/ref/pg_xlogdump.sgml b/doc/src/sgml/ref/pg_xlogdump.sgml
new file mode 100644
index cfb6d87..a229581
*** a/doc/src/sgml/ref/pg_xlogdump.sgml
--- b/doc/src/sgml/ref/pg_xlogdump.sgml
*************** PostgreSQL documentation
*** 118,125 ****
        <listitem>
         <para>
          Directory in which to find log segment files.  The default is to search
!         for them in the <literal>pg_wal</literal> subdirectory of the current
!         directory.
         </para>
        </listitem>
       </varlistentry>
--- 118,126 ----
        <listitem>
         <para>
          Directory in which to find log segment files.  The default is to search
!         for them in the current directory, and the <literal>pg_wal</literal>
!         subdirectory of both the current directory and the
!         <envar>PGDATA</envar> directory.
         </para>
        </listitem>
       </varlistentry>
diff --git a/src/bin/pg_xlogdump/pg_xlogdump.c b/src/bin/pg_xlogdump/pg_xlogdump.c
new file mode 100644
index 0ad441e..9e92f25
*** a/src/bin/pg_xlogdump/pg_xlogdump.c
--- b/src/bin/pg_xlogdump/pg_xlogdump.c
*************** usage(void)
*** 680,686 ****
  	printf(_("  -f, --follow           keep retrying after reaching end of WAL\n"));
  	printf(_("  -n, --limit=N          number of records to display\n"));
  	printf(_("  -p, --path=PATH        directory in which to find log segment files\n"
! 			 "                         (default: ./pg_wal)\n"));
  	printf(_("  -r, --rmgr=RMGR        only show records generated by resource manager RMGR\n"
  			 "                         use --rmgr=list to list valid resource manager names\n"));
  	printf(_("  -s, --start=RECPTR     start reading at log position RECPTR\n"));
--- 680,686 ----
  	printf(_("  -f, --follow           keep retrying after reaching end of WAL\n"));
  	printf(_("  -n, --limit=N          number of records to display\n"));
  	printf(_("  -p, --path=PATH        directory in which to find log segment files\n"
! 			 "                         (default: current directory, ./pg_wal, $PGDATA/pg_wal)\n"));
  	printf(_("  -r, --rmgr=RMGR        only show records generated by resource manager RMGR\n"
  			 "                         use --rmgr=list to list valid resource manager names\n"));
  	printf(_("  -s, --start=RECPTR     start reading at log position RECPTR\n"));
-- 
Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs

Reply via email to