mirror of
https://github.com/postgres/postgres.git
synced 2025-11-09 06:21:09 +03:00
Flexible options for BASE_BACKUP.
Previously, BASE_BACKUP used an entirely hard-coded syntax, but that's hard to extend. Instead, adopt the same kind of syntax we've used for SQL commands such as VACUUM, ANALYZE, COPY, and EXPLAIN, where it's not necessary for all of the option names to be parser keywords. In the new syntax, most of the options now take an optional Boolean argument. To match our practice in other in places, the options which the old syntax called NOWAIT and NOVERIFY_CHECKSUMS options are in the new syntax called WAIT and VERIFY_CHECKUMS, and the default value is false. In the new syntax, the FAST option has been replaced by a CHECKSUM option whose value may be 'fast' or 'spread'. This commit does not remove support for the old syntax. It just adds the new one as an additional option, and makes pg_basebackup prefer the new syntax when the server is new enough to support it. Patch by me, reviewed and tested by Fabien Coelho, Sergei Kornilov, Fujii Masao, and Tushar Ahuja. Discussion: http://postgr.es/m/CA+TgmobAczXDRO_Gr2euo_TxgzaH1JxbNxvFx=HYvBinefNH8Q@mail.gmail.com Discussion: http://postgr.es/m/CA+TgmoZGwR=ZVWFeecncubEyPdwghnvfkkdBe9BLccLSiqdf9Q@mail.gmail.com
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include "access/xlogdefs.h"
|
||||
#include "datatype/timestamp.h"
|
||||
#include "libpq-fe.h"
|
||||
#include "pqexpbuffer.h"
|
||||
|
||||
extern const char *progname;
|
||||
extern char *connection_string;
|
||||
@@ -40,6 +41,17 @@ extern bool RunIdentifySystem(PGconn *conn, char **sysid,
|
||||
TimeLineID *starttli,
|
||||
XLogRecPtr *startpos,
|
||||
char **db_name);
|
||||
|
||||
extern void AppendPlainCommandOption(PQExpBuffer buf,
|
||||
bool use_new_option_syntax,
|
||||
char *option_value);
|
||||
extern void AppendStringCommandOption(PQExpBuffer buf,
|
||||
bool use_new_option_syntax,
|
||||
char *option_name, char *option_value);
|
||||
extern void AppendIntegerCommandOption(PQExpBuffer buf,
|
||||
bool use_new_option_syntax,
|
||||
char *option_name, int32 option_value);
|
||||
|
||||
extern bool RetrieveWalSegSize(PGconn *conn);
|
||||
extern TimestampTz feGetCurrentTimestamp(void);
|
||||
extern void feTimestampDifference(TimestampTz start_time, TimestampTz stop_time,
|
||||
|
||||
Reference in New Issue
Block a user