diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 736eb67dfffbbe2110b86b63aa93108a75c5a1b6..c363949b7c5f7317e8f6b215387ec1a2844f489f 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -14069,6 +14069,16 @@ postgres=# select pg_start_backup('label_goes_here'); of the transaction log file currently in use. </para> + <para> + <function>pg_create_restore_point</> creates a named transaction log + record that can be used as recovery target, and returns the corresponding + transaction log location. The given name can then be used with + <xref linkend="recovery-target-name"> to specify the point up to which + recovery will proceed. Avoid creating multiple restore points with the + same name, since recovery will stop at the first one whose name matches + the recovery target. + </para> + <para> <function>pg_current_xlog_location</> displays the current transaction log write location in the same format used by the above functions. Similarly, diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 3ba1f29197f2ca595117e8ac1a9447b35062b52c..b4eb4ac2cce0d6281be5750bbc3d300b86448356 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -8144,6 +8144,10 @@ XLogRestorePoint(const char *rpName) RecPtr = XLogInsert(RM_XLOG_ID, XLOG_RESTORE_POINT, &rdata); + ereport(LOG, + (errmsg("restore point \"%s\" created at %X/%X", + rpName, RecPtr.xlogid, RecPtr.xrecoff))); + return RecPtr; }