LCOV - differential code coverage report
Current view: top level - src/common - archive.c (source / functions) Coverage Total Hit GNC CBC ECB DCB
Current: Differential Code Coverage HEAD vs 15 Lines: 100.0 % 9 9 8 1 1 7
Current Date: 2023-04-08 15:15:32 Functions: 100.0 % 1 1 1
Baseline: 15
Baseline Date: 2023-04-08 15:09:40
Legend: Lines: hit not hit

           TLA  Line data    Source code
       1                 : /*-------------------------------------------------------------------------
       2                 :  *
       3                 :  * archive.c
       4                 :  *    Common WAL archive routines
       5                 :  *
       6                 :  * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group
       7                 :  * Portions Copyright (c) 1994, Regents of the University of California
       8                 :  *
       9                 :  *
      10                 :  * IDENTIFICATION
      11                 :  *    src/common/archive.c
      12                 :  *
      13                 :  *-------------------------------------------------------------------------
      14                 :  */
      15                 : 
      16                 : #ifndef FRONTEND
      17                 : #include "postgres.h"
      18                 : #else
      19                 : #include "postgres_fe.h"
      20                 : #endif
      21                 : 
      22                 : #include "common/archive.h"
      23                 : #include "common/percentrepl.h"
      24                 : 
      25                 : /*
      26                 :  * BuildRestoreCommand
      27                 :  *
      28                 :  * Builds a restore command to retrieve a file from WAL archives, replacing
      29                 :  * the supported aliases with values supplied by the caller as defined by
      30                 :  * the GUC parameter restore_command: xlogpath for %p, xlogfname for %f and
      31                 :  * lastRestartPointFname for %r.
      32                 :  *
      33                 :  * The result is a palloc'd string for the restore command built.  The
      34                 :  * caller is responsible for freeing it.  If any of the required arguments
      35                 :  * is NULL and that the corresponding alias is found in the command given
      36                 :  * by the caller, then an error is thrown.
      37                 :  */
      38                 : char *
      39 CBC         132 : BuildRestoreCommand(const char *restoreCommand,
      40                 :                     const char *xlogpath,
      41                 :                     const char *xlogfname,
      42                 :                     const char *lastRestartPointFname)
      43                 : {
      44 GNC         132 :     char       *nativePath = NULL;
      45                 :     char       *result;
      46                 : 
      47             132 :     if (xlogpath)
      48 ECB             :     {
      49 GNC         132 :         nativePath = pstrdup(xlogpath);
      50             132 :         make_native_path(nativePath);
      51                 :     }
      52                 : 
      53             132 :     result = replace_percent_placeholders(restoreCommand, "restore_command", "frp",
      54                 :                                           xlogfname, lastRestartPointFname, nativePath);
      55                 : 
      56             132 :     if (nativePath)
      57             132 :         pfree(nativePath);
      58                 : 
      59             132 :     return result;
      60                 : }
        

Generated by: LCOV version v1.16-55-g56c0a2a