PostgreSQL Source Code
git master
Loading...
Searching...
No Matches
archive.c
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* archive.c
4
* Common WAL archive routines
5
*
6
* Portions Copyright (c) 1996-2026, 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
BuildRestoreCommand
(
const
char
*restoreCommand,
40
const
char
*
xlogpath
,
41
const
char
*
xlogfname
,
42
const
char
*
lastRestartPointFname
)
43
{
44
char
*
nativePath
=
NULL
;
45
char
*
result
;
46
47
if
(
xlogpath
)
48
{
49
nativePath
=
pstrdup
(
xlogpath
);
50
make_native_path
(
nativePath
);
51
}
52
53
result
=
replace_percent_placeholders
(restoreCommand,
"restore_command"
,
"frp"
,
54
xlogfname
,
lastRestartPointFname
,
nativePath
);
55
56
if
(
nativePath
)
57
pfree
(
nativePath
);
58
59
return
result
;
60
}
result
uint32 result
Definition
checksum_block_internal.h:18
BuildRestoreCommand
char * BuildRestoreCommand(const char *restoreCommand, const char *xlogpath, const char *xlogfname, const char *lastRestartPointFname)
Definition
archive.c:39
archive.h
pstrdup
char * pstrdup(const char *in)
Definition
mcxt.c:1781
pfree
void pfree(void *pointer)
Definition
mcxt.c:1616
replace_percent_placeholders
char * replace_percent_placeholders(const char *instr, const char *param_name, const char *letters,...)
Definition
percentrepl.c:59
percentrepl.h
make_native_path
void make_native_path(char *filename)
Definition
path.c:236
postgres.h
postgres_fe.h
fb
static int fb(int x)
Definition
preproc-init.c:92
src
common
archive.c
Generated on Sun Apr 12 2026 08:13:16 for PostgreSQL Source Code by
1.9.8