8000 Make wal streaming the default mode for pg_basebackup · postgres/postgres@9a4d510 · GitHub
[go: up one dir, main page]

Skip to content
{"payload":{"commit":{"oid":"9a4d51077c96c10322582211781bb969b51822ff","url":"/postgres/postgres/commit/9a4d51077c96c10322582211781bb969b51822ff","authoredDate":"2017-01-04T10:40:38.000+01:00","committedDate":"2017-01-04T10:40:38.000+01:00","shortMessage":null,"shortMessageMarkdown":"\u003cdiv\u003eMake wal streaming the default mode for pg_basebackup\u003c/div\u003e","shortMessageMarkdownLink":null,"bodyMessageHtml":"Since streaming is now supported for all output formats, make this the\ndefault as this is what most people want.\n\nTo get the old behavior, the parameter -X none can be specified to turn\nit off.\n\nThis also removes the parameter -x for fetch, now requiring -X fetch to\nbe specified to use that.\n\nReviewed by Vladimir Rusinov, Michael Paquier and Simon Riggs","authors":[{"login":"mhagander","displayName":"Magnus Hagander","avatarUrl":"https://avatars.githubusercontent.com/u/174657?v=4","path":"/mhagander","isGitHub":false}],"committerAttribution":false,"committer":{"login":"mhagander","displayName":"Magnus Hagander","avatarUrl":"https://avatars.githubusercontent.com/u/174657?v=4","path":"/mhagander","isGitHub":false},"parents":["1d25779284fe1ba08ecd57e647292a9deb241376"],"globalRelayId":"MDY6Q29tbWl0OTI3NDQyOjlhNGQ1MTA3N2M5NmMxMDMyMjU4MjIxMTc4MWJiOTY5YjUxODIyZmY=","sha1":"1d25779284fe1ba08ecd57e647292a9deb241376","sha2":"9a4d51077c96c10322582211781bb969b51822ff"},"currentUser":null,"repo":{"id":927442,"defaultBranch":"master","name":"postgres","ownerLogin":"postgres","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-09-21T11:35:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/177543?v=4","public":true,"private":false,"isOrgOwned":true},"diffEntryData":[{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":55,"text":"@@ -56,7 +56,7 @@ PostgreSQL documentation","html":"@@ -56,7 +56,7 @@ PostgreSQL documentation","displayNoNewLineWarning":false,"position":0,"left":55,"right":55},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":56,"text":" and \u003cfilename\u003epg_hba.conf\u003c/filename\u003e must explicitly permit the replication","html":" and \u0026lt;filename\u0026gt;pg_hba.conf\u0026lt;/filename\u0026gt; must explicitly permit the replication","displayNoNewLineWarning":false,"position":1,"left":56,"right":56},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":57,"text":" connection. The server must also be configured","html":" connection. The server must also be configured","displayNoNewLineWarning":false,"position":2,"left":57,"right":57},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":58,"text":" with \u003cxref linkend=\"guc-max-wal-senders\"\u003e set high enough to leave at least","html":" with \u0026lt;xref linkend=\u0026quot;guc-max-wal-senders\u0026quot;\u0026gt; set high enough to leave at least","displayNoNewLineWarning":false,"position":3,"left":58,"right":58},{"stylingDirective":null,"type":"DELETION","blobLineNumber":59,"text":"- one session available for the backup.","html":"- one session available for the backup.","displayNoNewLineWarning":false,"position":4,"left":59,"right":58},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":59,"text":"+ one session available for the backup and one for WAL streaming (if used).","html":"+ one session available for the backup\u003cspan class=\"x x-first x-last\"\u003e and one for WAL streaming (if used)\u003c/span\u003e.","displayNoNewLineWarning":false,"position":5,"left":59,"right":59},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":60,"text":" \u003c/para\u003e","html":" \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":6,"left":60,"right":60},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":61,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":7,"left":61,"right":61},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":62,"text":" \u003cpara\u003e","html":" \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":8,"left":62,"right":62},{"stylingDirective":null,"type":"HUNK","blobLineNumber":84,"text":"@@ -85,10 +85,8 @@ PostgreSQL documentation","html":"@@ -85,10 +85,8 @@ PostgreSQL documentation","displayNoNewLineWarning":false,"position":9,"left":84,"right":84},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":85,"text":" \u003c/listitem\u003e","html":" \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":10,"left":85,"right":85},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":86,"text":" \u003clistitem\u003e","html":" \u0026lt;listitem\u0026gt;","displayNoNewLineWarning":false,"position":11,"left":86,"right":86},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":87,"text":" \u003cpara\u003e","html":" \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":12,"left":87,"right":87},{"stylingDirective":null,"type":"DELETION","blobLineNumber":88,"text":"- There is no guarantee that all WAL files required for the backup are archived","html":"- There is no guarantee that all WAL files required for the backup are archived","displayNoNewLineWarning":false,"position":13,"left":88,"right":87},{"stylingDirective":null,"type":"DELETION","blobLineNumber":89,"text":"- at the end of backup. If you are planning to use the backup for an archive","html":"- at the end of backup. If you are planning to use the backup for an archive","displayNoNewLineWarning":false,"position":14,"left":89,"right":87},{"stylingDirective":null,"type":"DELETION","blobLineNumber":90,"text":"- recovery and want to ensure that all required files are available at that moment,","html":"- recovery and want to ensure that all required files are available at that moment,","displayNoNewLineWarning":false,"position":15,"left":90,"right":87},{"stylingDirective":null,"type":"DELETION","blobLineNumber":91,"text":"- you need to include them into the backup by using the \u003cliteral\u003e-x\u003c/\u003e option.","html":"- you need to include them into the backup by using the \u0026lt;literal\u0026gt;-x\u0026lt;/\u0026gt; option.","displayNoNewLineWarning":false,"position":16,"left":91,"right":87},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":88,"text":"+ If you are using \u003cliteral\u003e-X none\u003c/\u003e, there is no guarantee that all","html":"+ If you are using \u0026lt;literal\u0026gt;-X none\u0026lt;/\u0026gt;, there is no guarantee that all","displayNoNewLineWarning":false,"position":17,"left":91,"right":88},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":89,"text":"+ WAL files required for the backup are archived at the end of backup.","html":"+ WAL files required for the backup are archived at the end of backup.","displayNoNewLineWarning":false,"position":18,"left":91,"right":89},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":90,"text":" \u003c/para\u003e","html":" \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":19,"left":92,"right":90},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":91,"text":" \u003c/listitem\u003e","html":" \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":20,"left":93,"right":91},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":92,"text":" \u003clistitem\u003e","html":" \u0026lt;listitem\u0026gt;","displayNoNewLineWarning":false,"position":21,"left":94,"right":92},{"stylingDirective":null,"type":"HUNK","blobLineNumber":281,"text":"@@ -284,34 +282,33 @@ PostgreSQL documentation","html":"@@ -284,34 +282,33 @@ PostgreSQL documentation","displayNoNewLineWarning":false,"position":22,"left":283,"right":281},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":282,"text":" \u003c/listitem\u003e","html":" \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":23,"left":284,"right":282},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":283,"text":" \u003c/varlistentry\u003e","html":" \u0026lt;/varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":24,"left":285,"right":283},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":284,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":25,"left":286,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":287,"text":"- \u003cvarlistentry\u003e","html":"- \u0026lt;varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":26,"left":287,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":288,"text":"- \u003cterm\u003e\u003coption\u003e-x\u003c/option\u003e\u003c/term\u003e","html":"- \u0026lt;term\u0026gt;\u0026lt;option\u0026gt;-x\u0026lt;/option\u0026gt;\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":27,"left":288,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":289,"text":"- \u003cterm\u003e\u003coption\u003e--xlog\u003c/option\u003e\u003c/term\u003e","html":"- \u0026lt;term\u0026gt;\u0026lt;option\u0026gt;--xlog\u0026lt;/option\u0026gt;\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":28,"left":289,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":290,"text":"- \u003clistitem\u003e","html":"- \u0026lt;listitem\u0026gt;","displayNoNewLineWarning":false,"position":29,"left":290,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":291,"text":"- \u003cpara\u003e","html":"- \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":30,"left":291,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":292,"text":"- Using this option is equivalent of using \u003cliteral\u003e-X\u003c/literal\u003e with","html":"- Using this option is equivalent of using \u0026lt;literal\u0026gt;-X\u0026lt;/literal\u0026gt; with","displayNoNewLineWarning":false,"position":31,"left":292,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":293,"text":"- method \u003cliteral\u003efetch\u003c/literal\u003e.","html":"- method \u0026lt;literal\u0026gt;fetch\u0026lt;/literal\u0026gt;.","displayNoNewLineWarning":false,"position":32,"left":293,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":294,"text":"- \u003c/para\u003e","html":"- \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":33,"left":294,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":295,"text":"- \u003c/listitem\u003e","html":"- \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":34,"left":295,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":296,"text":"- \u003c/varlistentry\u003e","html":"- \u0026lt;/varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":35,"left":296,"right":284},{"stylingDirective":null,"type":"DELETION","blobLineNumber":297,"text":"-","html":"-","displayNoNewLineWarning":false,"position":36,"left":297,"right":284},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":285,"text":" \u003cvarlistentry\u003e","html":" \u0026lt;varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":37,"left":298,"right":285},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":286,"text":" \u003cterm\u003e\u003coption\u003e-X \u003creplaceable class=\"parameter\"\u003emethod\u003c/replaceable\u003e\u003c/option\u003e\u003c/term\u003e","html":" \u0026lt;term\u0026gt;\u0026lt;option\u0026gt;-X \u0026lt;replaceable class=\u0026quot;parameter\u0026quot;\u0026gt;method\u0026lt;/replaceable\u0026gt;\u0026lt;/option\u0026gt;\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":38,"left":299,"right":286},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":287,"text":" \u003cterm\u003e\u003coption\u003e--xlog-method=\u003creplaceable class=\"parameter\"\u003emethod\u003c/replaceable\u003e\u003c/option\u003e\u003c/term\u003e","html":" \u0026lt;term\u0026gt;\u0026lt;option\u0026gt;--xlog-method=\u0026lt;replaceable class=\u0026quot;parameter\u0026quot;\u0026gt;method\u0026lt;/replaceable\u0026gt;\u0026lt;/option\u0026gt;\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":39,"left":300,"right":287},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":288,"text":" \u003clistitem\u003e","html":" \u0026lt;listitem\u0026gt;","displayNoNewLineWarning":false,"position":40,"left":301,"right":288},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":289,"text":" \u003cpara\u003e","html":" \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":41,"left":302,"right":289},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":290,"text":" Includes the required transaction log files (WAL files) in the","html":" Includes the required transaction log files (WAL files) in the","displayNoNewLineWarning":false,"position":42,"left":303,"right":290},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":291,"text":" backup. This will include all transaction logs generated during","html":" backup. This will include all transaction logs generated during","displayNoNewLineWarning":false,"position":43,"left":304,"right":291},{"stylingDirective":null,"type":"DELETION","blobLineNumber":305,"text":"- the backup. If this option is specified, it is possible to start","html":"- the backup. \u003cspan class=\"x x-first x-last\"\u003eIf this option \u003c/span\u003eis specified,\u003cspan class=\"x x-first x-last\"\u003e it is possible to start\u003c/span\u003e","displayNoNewLineWarning":false,"position":44,"left":305,"right":291},{"stylingDirective":null,"type":"DELETION","blobLineNumber":306,"text":"- a postmaster directly in the extracted directory without the need","html":"- a postmaster directly in the extracted\u003cspan class=\"x x-first x-last\"\u003e directory without the need\u003c/span\u003e","displayNoNewLineWarning":false,"position":45,"left":306,"right":291},{"stylingDirective":null,"type":"DELETION","blobLineNumber":307,"text":"- to consult the log archive, thus making this a completely standalone","html":"- to consult the log archive, thus\u003cspan class=\"x x-first x-last\"\u003e making this a completely standalone\u003c/span\u003e","displayNoNewLineWarning":false,"position":46,"left":307,"right":291},{"stylingDirective":null,"type":"DELETION","blobLineNumber":308,"text":"- backup.","html":"- backup.","displayNoNewLineWarning":false,"position":47,"left":308,"right":291},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":292,"text":"+ the backup. Unless the method \u003cliteral\u003enone\u003c/literal\u003e is specified,","html":"+ the backup. \u003cspan class=\"x x-first x-last\"\u003eUnless the method \u0026lt;literal\u0026gt;none\u0026lt;/literal\u0026gt; \u003c/span\u003eis specified,","displayNoNewLineWarning":false,"position":48,"left":308,"right":292},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":293,"text":"+ it is possible to start a postmaster directly in the extracted","html":"+ \u003cspan class=\"x x-first x-last\"\u003eit is possible to start \u003c/span\u003ea postmaster directly in the extracted","displayNoNewLineWarning":false,"position":49,"left":308,"right":293},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":294,"text":"+ directory without the need to consult the log archive, thus","html":"+ \u003cspan class=\"x x-first x-last\"\u003edirectory without the need \u003c/span\u003eto consult the log archive, thus","displayNoNewLineWarning":false,"position":50,"left":308,"right":294},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":295,"text":"+ making this a completely standalone backup.","html":"+ \u003cspan class=\"x x-first x-last\"\u003emaking this a completely standalone \u003c/span\u003ebackup.","displayNoNewLineWarning":false,"position":51,"left":308,"right":295},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":296,"text":" \u003c/para\u003e","html":" \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":52,"left":309,"right":296},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":297,"text":" \u003cpara\u003e","html":" \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":53,"left":310,"right":297},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":298,"text":" The following methods for collecting the transaction logs are","html":" The following methods for collecting the transaction logs are","displayNoNewLineWarning":false,"position":54,"left":311,"right":298},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":299,"text":" supported:","html":" supported:","displayNoNewLineWarning":false,"position":55,"left":312,"right":299},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":300,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":56,"left":313,"right":300},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":301,"text":" \u003cvariablelist\u003e","html":" \u0026lt;variablelist\u0026gt;","displayNoNewLineWarning":false,"position":57,"left":314,"right":301},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":302,"text":"+ \u003cvarlistentry\u003e","html":"+ \u0026lt;varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":58,"left":314,"right":302},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":303,"text":"+ \u003cterm\u003e\u003cliteral\u003en\u003c/literal\u003e\u003c/term\u003e","html":"+ \u0026lt;term\u0026gt;\u0026lt;literal\u0026gt;n\u0026lt;/literal\u0026gt;\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":59,"left":314,"right":303},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":304,"text":"+ \u003cterm\u003e\u003cliteral\u003enone\u003c/literal\u003e\u003c/term\u003e","html":"+ \u0026lt;term\u0026gt;\u0026lt;literal\u0026gt;none\u0026lt;/literal\u0026gt;\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":60,"left":314,"right":304},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":305,"text":"+ \u003clistitem\u003e","html":"+ \u0026lt;listitem\u0026gt;","displayNoNewLineWarning":false,"position":61,"left":314,"right":305},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":306,"text":"+ \u003cpara\u003e","html":"+ \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":62,"left":314,"right":306},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":307,"text":"+ Don't include transaction log in the backup.","html":"+ Don\u0026#39;t include transaction log in the backup.","displayNoNewLineWarning":false,"position":63,"left":314,"right":307},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":308,"text":"+ \u003c/para\u003e","html":"+ \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":64,"left":314,"right":308},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":309,"text":"+ \u003c/listitem\u003e","html":"+ \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":65,"left":314,"right":309},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":310,"text":"+ \u003c/varlistentry\u003e","html":"+ \u0026lt;/varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":66,"left":314,"right":310},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":311,"text":"+","html":"+","displayNoNewLineWarning":false,"position":67,"left":314,"right":311},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":312,"text":" \u003cvarlistentry\u003e","html":" \u0026lt;varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":68,"left":315,"right":312},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":313,"text":" \u003cterm\u003e\u003cliteral\u003ef\u003c/literal\u003e\u003c/term\u003e","html":" \u0026lt;term\u0026gt;\u0026lt;literal\u0026gt;f\u0026lt;/literal\u0026gt;\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":69,"left":316,"right":313},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":314,"text":" \u003cterm\u003e\u003cliteral\u003efetch\u003c/literal\u003e\u003c/term\u003e","html":" \u0026lt;term\u0026gt;\u0026lt;literal\u0026gt;fetch\u0026lt;/literal\u0026gt;\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":70,"left":317,"right":314},{"stylingDirective":null,"type":"HUNK","blobLineNumber":345,"text":"@@ -349,6 +346,9 @@ PostgreSQL documentation","html":"@@ -349,6 +346,9 @@ PostgreSQL documentation","displayNoNewLineWarning":false,"position":71,"left":348,"right":345},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":346,"text":" named \u003cfilename\u003epg_wal.tar\u003c/filename\u003e (if the server is a version","html":" named \u0026lt;filename\u0026gt;pg_wal.tar\u0026lt;/filename\u0026gt; (if the server is a version","displayNoNewLineWarning":false,"position":72,"left":349,"right":346},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":347,"text":" earlier than 10, the file will be named \u003cfilename\u003epg_xlog.tar\u003c/filename\u003e).","html":" earlier than 10, the file will be named \u0026lt;filename\u0026gt;pg_xlog.tar\u0026lt;/filename\u0026gt;).","displayNoNewLineWarning":false,"position":73,"left":350,"right":347},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":348,"text":" \u003c/para\u003e","html":" \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":74,"left":351,"right":348},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":349,"text":"+ \u003cpara\u003e","html":"+ \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":75,"left":351,"right":349},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":350,"text":"+ This value is the default.","html":"+ This value is the default.","displayNoNewLineWarning":false,"position":76,"left":351,"right":350},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":351,"text":"+ \u003c/para\u003e","html":"+ \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":77,"left":351,"right":351},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":352,"text":" \u003c/listitem\u003e","html":" \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":78,"left":352,"right":352},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":353,"text":" \u003c/varlistentry\u003e","html":" \u0026lt;/varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":79,"left":353,"right":353},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":354,"text":" \u003c/variablelist\u003e","html":" \u0026lt;/variablelist\u0026gt;","displayNoNewLineWarning":false,"position":80,"left":354,"right":354},{"stylingDirective":null,"type":"HUNK","blobLineNumber":698,"text":"@@ -699,7 +699,7 @@ PostgreSQL documentation","html":"@@ -699,7 +699,7 @@ PostgreSQL documentation","displayNoNewLineWarning":false,"position":81,"left":698,"right":698},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":699,"text":" To create a backup of a single-tablespace local database and compress","html":" To create a backup of a single-tablespace local database and compress","displayNoNewLineWarning":false,"position":82,"left":699,"right":699},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":700,"text":" this with \u003cproductname\u003ebzip2\u003c/productname\u003e:","html":" this with \u0026lt;productname\u0026gt;bzip2\u0026lt;/productname\u0026gt;:","displayNoNewLineWarning":false,"position":83,"left":700,"right":700},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":701,"text":" \u003cscreen\u003e","html":" \u0026lt;screen\u0026gt;","displayNoNewLineWarning":false,"position":84,"left":701,"right":701},{"stylingDirective":null,"type":"DELETION","blobLineNumber":702,"text":"-\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003epg_basebackup -D - -Ft | bzip2 \u0026gt; backup.tar.bz2\u003c/userinput\u003e","html":"-\u0026lt;prompt\u0026gt;$\u0026lt;/prompt\u0026gt; \u0026lt;userinput\u0026gt;pg_basebackup -D - -Ft | bzip2 \u0026amp;gt; backup.tar.bz2\u0026lt;/userinput\u0026gt;","displayNoNewLineWarning":false,"position":85,"left":702,"right":701},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":702,"text":"+\u003cprompt\u003e$\u003c/prompt\u003e \u003cuserinput\u003epg_basebackup -D - -Ft -X fetch | bzip2 \u0026gt; backup.tar.bz2\u003c/userinput\u003e","html":"+\u0026lt;prompt\u0026gt;$\u0026lt;/prompt\u0026gt; \u0026lt;userinput\u0026gt;pg_basebackup -D - -Ft \u003cspan class=\"x x-first x-last\"\u003e-X fetch \u003c/span\u003e| bzip2 \u0026amp;gt; backup.tar.bz2\u0026lt;/userinput\u0026gt;","displayNoNewLineWarning":false,"position":86,"left":702,"right":702},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":703,"text":" \u003c/screen\u003e","html":" \u0026lt;/screen\u0026gt;","displayNoNewLineWarning":false,"position":87,"left":703,"right":703},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":704,"text":" (This command will fail if there are multiple tablespaces in the","html":" (This command will fail if there are multiple tablespaces in the","displayNoNewLineWarning":false,"position":88,"left":704,"right":704},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":705,"text":" database.)","html":" database.)","displayNoNewLineWarning":false,"position":89,"left":705,"right":705}],"diffNumber":0,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":726,"linesChanged":42,"newTreeEntry":{"lineCount":726,"path":"doc/src/sgml/ref/pg_basebackup.sgml","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"doc/src/sgml/ref/pg_basebackup.sgml","mode":100644},"linesAdded":21,"linesDeleted":21,"path":"doc/src/sgml/ref/pg_basebackup.sgml","pathDigest":"b04abecb484f2424a06f93208eb0fba104116984655bbf00b3d310e4f6260a1c","status":"MODIFIED","truncatedReason":null,"oldOid":"1d25779284fe1ba08ecd57e647292a9deb241376","newOid":"9a4d51077c96c10322582211781bb969b51822ff","copilotChatReference":null,"deletedSha":"1d25779284fe1ba08ecd57e647292a9deb241376","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":70,"text":"@@ -71,8 +71,8 @@ static bool noclean = false;","html":"@@ -71,8 +71,8 @@ static bool noclean = false;","displayNoNewLineWarning":false,"position":0,"left":70,"right":70},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":71,"text":" static bool showprogress = false;","html":" \u003cspan class=pl-k\u003estatic\u003c/span\u003e \u003cspan class=pl-smi\u003ebool\u003c/span\u003e \u003cspan class=pl-s1\u003eshowprogress\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":1,"left":71,"right":71},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":72,"text":" static int\tverbose = 0;","html":" \u003cspan class=pl-k\u003estatic\u003c/span\u003e \u003cspan class=pl-smi\u003eint\u003c/span\u003e\t\u003cspan class=pl-s1\u003everbose\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e;","displayNoNewLineWarning":false,"position":2,"left":72,"right":72},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":73,"text":" static int\tcompresslevel = 0;","html":" \u003cspan class=pl-k\u003estatic\u003c/span\u003e \u003cspan class=pl-smi\u003eint\u003c/span\u003e\t\u003cspan class=pl-s1\u003ecompresslevel\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e;","displayNoNewLineWarning":false,"position":3,"left":73,"right":73},{"stylingDirective":null,"type":"DELETION","blobLineNumber":74,"text":"-static bool includewal = false;","html":"-\u003cspan class=\"pl-k\"\u003estatic\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003ebool\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003eincludewal\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"x x-first x-last\"\u003efalse\u003c/span\u003e;","displayNoNewLineWarning":false,"position":4,"left":74,"right":73},{"stylingDirective":null,"type":"DELETION","blobLineNumber":75,"text":"-static bool streamwal = false;","html":"-\u003cspan class=\"pl-k\"\u003estatic\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003ebool\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003estreamwal\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"x x-first x-last\"\u003efalse\u003c/span\u003e;","displayNoNewLineWarning":false,"position":5,"left":75,"right":73},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":74,"text":"+static bool includewal = true;","html":"+\u003cspan class=\"pl-k\"\u003estatic\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003ebool\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003eincludewal\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"x x-first x-last\"\u003etrue\u003c/span\u003e;","displayNoNewLineWarning":false,"position":6,"left":75,"right":74},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":75,"text":"+static bool streamwal = true;","html":"+\u003cspan class=\"pl-k\"\u003estatic\u003c/span\u003e \u003cspan class=\"pl-smi\"\u003ebool\u003c/span\u003e \u003cspan class=\"pl-s1\"\u003estreamwal\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"x x-first x-last\"\u003etrue\u003c/span\u003e;","displayNoNewLineWarning":false,"position":7,"left":75,"right":75},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":76,"text":" static bool fastcheckpoint = false;","html":" \u003cspan class=pl-k\u003estatic\u003c/span\u003e \u003cspan class=pl-smi\u003ebool\u003c/span\u003e \u003cspan class=pl-s1\u003efastcheckpoint\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":8,"left":76,"right":76},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":77,"text":" static bool writerecoveryconf = false;","html":" \u003cspan class=pl-k\u003estatic\u003c/span\u003e \u003cspan class=pl-smi\u003ebool\u003c/span\u003e \u003cspan class=pl-s1\u003ewriterecoveryconf\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":9,"left":77,"right":77},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":78,"text":" static bool do_sync = true;","html":" \u003cspan class=pl-k\u003estatic\u003c/span\u003e \u003cspan class=pl-smi\u003ebool\u003c/span\u003e \u003cspan class=pl-s1\u003edo_sync\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":10,"left":78,"right":78},{"stylingDirective":null,"type":"HUNK","blobLineNumber":324,"text":"@@ -325,8 +325,7 @@ usage(void)","html":"@@ -325,8 +325,7 @@ usage(void)","displayNoNewLineWarning":false,"position":11,"left":324,"right":324},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":325,"text":" \tprintf(_(\" -S, --slot=SLOTNAME replication slot to use\\n\"));","html":" \t\u003cspan class=pl-en\u003eprintf\u003c/span\u003e(\u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot; -S, --slot=SLOTNAME replication slot to use\\n\u0026quot;\u003c/span\u003e));","displayNoNewLineWarning":false,"position":12,"left":325,"right":325},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":326,"text":" \tprintf(_(\" -T, --tablespace-mapping=OLDDIR=NEWDIR\\n\"","html":" \t\u003cspan class=pl-en\u003eprintf\u003c/span\u003e(\u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot; -T, --tablespace-mapping=OLDDIR=NEWDIR\\n\u0026quot;\u003c/span\u003e","displayNoNewLineWarning":false,"position":13,"left":326,"right":326},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":327,"text":" \t \" relocate tablespace in OLDDIR to NEWDIR\\n\"));","html":" \t \u003cspan class=pl-s\u003e\u0026quot; relocate tablespace in OLDDIR to NEWDIR\\n\u0026quot;\u003c/span\u003e));","displayNoNewLineWarning":false,"position":14,"left":327,"right":327},{"stylingDirective":null,"type":"DELETION","blobLineNumber":328,"text":"-\tprintf(_(\" -x, --xlog include required WAL files in backup (fetch mode)\\n\"));","html":"-\t\u003cspan class=pl-en\u003eprintf\u003c/span\u003e(\u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot; -x, --xlog include required WAL files in backup (fetch mode)\\n\u0026quot;\u003c/span\u003e));","displayNoNewLineWarning":false,"position":15,"left":328,"right":327},{"stylingDirective":null,"type":"DELETION","blobLineNumber":329,"text":"-\tprintf(_(\" -X, --xlog-method=fetch|stream\\n\"","html":"-\t\u003cspan class=pl-en\u003eprintf\u003c/span\u003e(\u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot; -X, --xlog-method=fetch|stream\\n\u0026quot;\u003c/span\u003e","displayNoNewLineWarning":false,"position":16,"left":329,"right":327},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":328,"text":"+\tprintf(_(\" -X, --xlog-method=none|fetch|stream\\n\"","html":"+\t\u003cspan class=pl-en\u003eprintf\u003c/span\u003e(\u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot; -X, --xlog-method=none|fetch|stream\\n\u0026quot;\u003c/span\u003e","displayNoNewLineWarning":false,"position":17,"left":329,"right":328},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":329,"text":" \t\t\t \" include required WAL files with specified method\\n\"));","html":" \t\t\t \u003cspan class=pl-s\u003e\u0026quot; include required WAL files with specified method\\n\u0026quot;\u003c/span\u003e));","displayNoNewLineWarning":false,"position":18,"left":330,"right":329},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":330,"text":" \tprintf(_(\" --xlogdir=XLOGDIR location for the transaction log directory\\n\"));","html":" \t\u003cspan class=pl-en\u003eprintf\u003c/span\u003e(\u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot; --xlogdir=XLOGDIR location for the transaction log directory\\n\u0026quot;\u003c/span\u003e));","displayNoNewLineWarning":false,"position":19,"left":331,"right":330},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":331,"text":" \tprintf(_(\" -z, --gzip compress tar output\\n\"));","html":" \t\u003cspan class=pl-en\u003eprintf\u003c/span\u003e(\u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot; -z, --gzip compress tar output\\n\u0026quot;\u003c/span\u003e));","displayNoNewLineWarning":false,"position":20,"left":332,"right":331},{"stylingDirective":null,"type":"HUNK","blobLineNumber":1698,"text":"@@ -1700,7 +1699,11 @@ BaseBackup(void)","html":"@@ -1700,7 +1699,11 @@ BaseBackup(void)","displayNoNewLineWarning":false,"position":21,"left":1699,"right":1698},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1699,"text":" \t */","html":" \u003cspan class=pl-c\u003e\t */\u003c/span\u003e","displayNoNewLineWarning":false,"position":22,"left":1700,"right":1699},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1700,"text":" \tif (streamwal \u0026\u0026 !CheckServerVersionForStreaming(conn))","html":" \t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003estreamwal\u003c/span\u003e \u003cspan class=pl-c1\u003e\u0026amp;\u0026amp;\u003c/span\u003e !\u003cspan class=pl-en\u003eCheckServerVersionForStreaming\u003c/span\u003e(\u003cspan class=pl-s1\u003econn\u003c/span\u003e))","displayNoNewLineWarning":false,"position":23,"left":1701,"right":1700},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1701,"text":" \t{","html":" \t{","displayNoNewLineWarning":false,"position":24,"left":1702,"right":1701},{"stylingDirective":null,"type":"DELETION","blobLineNumber":1703,"text":"-\t\t/* Error message already written in CheckServerVersionForStreaming() */","html":"-\t\t\u003cspan class=pl-c\u003e/* Error message already written in CheckServerVersionForStreaming() */\u003c/span\u003e","displayNoNewLineWarning":false,"position":25,"left":1703,"right":1701},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1702,"text":"+\t\t/*","html":"+\t\t\u003cspan class=pl-c\u003e/*\u003c/span\u003e","displayNoNewLineWarning":false,"position":26,"left":1703,"right":1702},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1703,"text":"+\t\t * Error message already written in CheckServerVersionForStreaming(),","html":"+\u003cspan class=pl-c\u003e\t\t * Error message already written in CheckServerVersionForStreaming(),\u003c/span\u003e","displayNoNewLineWarning":false,"position":27,"left":1703,"right":1703},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1704,"text":"+\t\t * but add a hint about using -X none.","html":"+\u003cspan class=pl-c\u003e\t\t * but add a hint about using -X none.\u003c/span\u003e","displayNoNewLineWarning":false,"position":28,"left":1703,"right":1704},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1705,"text":"+\t\t */","html":"+\u003cspan class=pl-c\u003e\t\t */\u003c/span\u003e","displayNoNewLineWarning":false,"position":29,"left":1703,"right":1705},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1706,"text":"+\t\tfprintf(stderr, _(\"HINT: use -X none or -X fetch to disable log streaming\\n\"));","html":"+\t\t\u003cspan class=pl-en\u003efprintf\u003c/span\u003e(\u003cspan class=pl-s1\u003estderr\u003c/span\u003e, \u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;HINT: use -X none or -X fetch to disable log streaming\\n\u0026quot;\u003c/span\u003e));","displayNoNewLineWarning":false,"position":30,"left":1703,"right":1706},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1707,"text":" \t\tdisconnect_and_exit(1);","html":" \t\t\u003cspan class=pl-en\u003edisconnect_and_exit\u003c/span\u003e(\u003cspan class=pl-c1\u003e1\u003c/span\u003e);","displayNoNewLineWarning":false,"position":31,"left":1704,"right":1707},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1708,"text":" \t}","html":" \t}","displayNoNewLineWarning":false,"position":32,"left":1705,"right":1708},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1709,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":33,"left":1706,"right":1709},{"stylingDirective":null,"type":"HUNK","blobLineNumber":2037,"text":"@@ -2035,7 +2038,6 @@ main(int argc, char **argv)","html":"@@ -2035,7 +2038,6 @@ main(int argc, char **argv)","displayNoNewLineWarning":false,"position":34,"left":2034,"right":2037},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2038,"text":" \t\t{\"write-recovery-conf\", no_argument, NULL, 'R'},","html":" \t\t{\u003cspan class=pl-s\u003e\u0026quot;write-recovery-conf\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s1\u003eno_argument\u003c/span\u003e, \u003cspan class=pl-c1\u003eNULL\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026#39;R\u0026#39;\u003c/span\u003e},","displayNoNewLineWarning":false,"position":35,"left":2035,"right":2038},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2039,"text":" \t\t{\"slot\", required_argument, NULL, 'S'},","html":" \t\t{\u003cspan class=pl-s\u003e\u0026quot;slot\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s1\u003erequired_argument\u003c/span\u003e, \u003cspan class=pl-c1\u003eNULL\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026#39;S\u0026#39;\u003c/span\u003e},","displayNoNewLineWarning":false,"position":36,"left":2036,"right":2039},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2040,"text":" \t\t{\"tablespace-mapping\", required_argument, NULL, 'T'},","html":" \t\t{\u003cspan class=pl-s\u003e\u0026quot;tablespace-mapping\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s1\u003erequired_argument\u003c/span\u003e, \u003cspan class=pl-c1\u003eNULL\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026#39;T\u0026#39;\u003c/span\u003e},","displayNoNewLineWarning":false,"position":37,"left":2037,"right":2040},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2038,"text":"-\t\t{\"xlog\", no_argument, NULL, 'x'},","html":"-\t\t{\u003cspan class=pl-s\u003e\u0026quot;xlog\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s1\u003eno_argument\u003c/span\u003e, \u003cspan class=pl-c1\u003eNULL\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026#39;x\u0026#39;\u003c/span\u003e},","displayNoNewLineWarning":false,"position":38,"left":2038,"right":2040},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2041,"text":" \t\t{\"xlog-method\", required_argument, NULL, 'X'},","html":" \t\t{\u003cspan class=pl-s\u003e\u0026quot;xlog-method\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s1\u003erequired_argument\u003c/span\u003e, \u003cspan class=pl-c1\u003eNULL\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026#39;X\u0026#39;\u003c/span\u003e},","displayNoNewLineWarning":false,"position":39,"left":2039,"right":2041},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2042,"text":" \t\t{\"gzip\", no_argument, NULL, 'z'},","html":" \t\t{\u003cspan class=pl-s\u003e\u0026quot;gzip\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s1\u003eno_argument\u003c/span\u003e, \u003cspan class=pl-c1\u003eNULL\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026#39;z\u0026#39;\u003c/span\u003e},","displayNoNewLineWarning":false,"position":40,"left":2040,"right":2042},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2043,"text":" \t\t{\"compress\", required_argument, NULL, 'Z'},","html":" \t\t{\u003cspan class=pl-s\u003e\u0026quot;compress\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s1\u003erequired_argument\u003c/span\u003e, \u003cspan class=pl-c1\u003eNULL\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026#39;Z\u0026#39;\u003c/span\u003e},","displayNoNewLineWarning":false,"position":41,"left":2041,"right":2043},{"stylingDirective":null,"type":"HUNK","blobLineNumber":2079,"text":"@@ -2078,7 +2080,7 @@ main(int argc, char **argv)","html":"@@ -2078,7 +2080,7 @@ main(int argc, char **argv)","displayNoNewLineWarning":false,"position":42,"left":2077,"right":2079},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2080,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":43,"left":2078,"right":2080},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2081,"text":" \tatexit(cleanup_directories_atexit);","html":" \t\u003cspan class=pl-en\u003eatexit\u003c/span\u003e(\u003cspan class=pl-s1\u003ecleanup_directories_atexit\u003c/span\u003e);","displayNoNewLineWarning":false,"position":44,"left":2079,"right":2081},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2082,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":45,"left":2080,"right":2082},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2081,"text":"-\twhile ((c = getopt_long(argc, argv, \"D:F:r:RT:xX:l:nNzZ:d:c:h:p:U:s:S:wWvP\",","html":"-\t\u003cspan class=\"pl-k\"\u003ewhile\u003c/span\u003e ((\u003cspan class=\"pl-s1\"\u003ec\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"pl-en\"\u003egetopt_long\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eargc\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003eargv\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\"D:F:r:RT:\u003cspan class=\"x x-first x-last\"\u003exX\u003c/span\u003e:l:nNzZ:d:c:h:p:U:s:S:wWvP\"\u003c/span\u003e,","displayNoNewLineWarning":false,"position":46,"left":2081,"right":2082},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2083,"text":"+\twhile ((c = getopt_long(argc, argv, \"D:F:r:RT:X:l:nNzZ:d:c:h:p:U:s:S:wWvP\",","html":"+\t\u003cspan class=\"pl-k\"\u003ewhile\u003c/span\u003e ((\u003cspan class=\"pl-s1\"\u003ec\u003c/span\u003e \u003cspan class=\"pl-c1\"\u003e=\u003c/span\u003e \u003cspan class=\"pl-en\"\u003egetopt_long\u003c/span\u003e(\u003cspan class=\"pl-s1\"\u003eargc\u003c/span\u003e, \u003cspan class=\"pl-s1\"\u003eargv\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\"D:F:r:RT:\u003cspan class=\"x x-first x-last\"\u003eX\u003c/span\u003e:l:nNzZ:d:c:h:p:U:s:S:wWvP\"\u003c/span\u003e,","displayNoNewLineWarning":false,"position":47,"left":2081,"right":2083},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2084,"text":" \t\t\t\t\t\t\tlong_options, \u0026option_index)) != -1)","html":" \t\t\t\t\t\t\t\u003cspan class=pl-s1\u003elong_options\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026amp;\u003c/span\u003e\u003cspan class=pl-s1\u003eoption_index\u003c/span\u003e)) \u003cspan class=pl-c1\u003e!=\u003c/span\u003e \u003cspan class=pl-c1\u003e-1\u003c/span\u003e)","displayNoNewLineWarning":false,"position":48,"left":2082,"right":2084},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2085,"text":" \t{","html":" \t{","displayNoNewLineWarning":false,"position":49,"left":2083,"right":2085},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2086,"text":" \t\tswitch (c)","html":" \t\t\u003cspan class=pl-k\u003eswitch\u003c/span\u003e (\u003cspan class=pl-s1\u003ec\u003c/span\u003e)","displayNoNewLineWarning":false,"position":50,"left":2084,"right":2086},{"stylingDirective":null,"type":"HUNK","blobLineNumber":2112,"text":"@@ -2111,38 +2113,29 @@ main(int argc, char **argv)","html":"@@ -2111,38 +2113,29 @@ main(int argc, char **argv)","displayNoNewLineWarning":false,"position":51,"left":2110,"right":2112},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2113,"text":" \t\t\tcase 'T':","html":" \t\t\t\u003cspan class=pl-k\u003ecase\u003c/span\u003e \u003cspan class=pl-c1\u003e\u0026#39;T\u0026#39;\u003c/span\u003e:","displayNoNewLineWarning":false,"position":52,"left":2111,"right":2113},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2114,"text":" \t\t\t\ttablespace_list_append(optarg);","html":" \t\t\t\t\u003cspan class=pl-en\u003etablespace_list_append\u003c/span\u003e(\u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e);","displayNoNewLineWarning":false,"position":53,"left":2112,"right":2114},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2115,"text":" \t\t\t\tbreak;","html":" \t\t\t\t\u003cspan class=pl-k\u003ebreak\u003c/span\u003e;","displayNoNewLineWarning":false,"position":54,"left":2113,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2114,"text":"-\t\t\tcase 'x':","html":"-\t\t\t\u003cspan class=pl-k\u003ecase\u003c/span\u003e \u003cspan class=pl-c1\u003e\u0026#39;x\u0026#39;\u003c/span\u003e:","displayNoNewLineWarning":false,"position":55,"left":2114,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2115,"text":"-\t\t\t\tif (includewal)","html":"-\t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003eincludewal\u003c/span\u003e)","displayNoNewLineWarning":false,"position":56,"left":2115,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2116,"text":"-\t\t\t\t{","html":"-\t\t\t\t{","displayNoNewLineWarning":false,"position":57,"left":2116,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2117,"text":"-\t\t\t\t\tfprintf(stderr,","html":"-\t\t\t\t\t\u003cspan class=pl-en\u003efprintf\u003c/span\u003e(\u003cspan class=pl-s1\u003estderr\u003c/span\u003e,","displayNoNewLineWarning":false,"position":58,"left":2117,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2118,"text":"-\t\t\t\t\t _(\"%s: cannot specify both --xlog and --xlog-method\\n\"),","html":"-\t\t\t\t\t \u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;%s: cannot specify both --xlog and --xlog-method\\n\u0026quot;\u003c/span\u003e),","displayNoNewLineWarning":false,"position":59,"left":2118,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2119,"text":"-\t\t\t\t\t\t\tprogname);","html":"-\t\t\t\t\t\t\t\u003cspan class=pl-s1\u003eprogname\u003c/span\u003e);","displayNoNewLineWarning":false,"position":60,"left":2119,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2120,"text":"-\t\t\t\t\texit(1);","html":"-\t\t\t\t\t\u003cspan class=pl-en\u003eexit\u003c/span\u003e(\u003cspan class=pl-c1\u003e1\u003c/span\u003e);","displayNoNewLineWarning":false,"position":61,"left":2120,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2121,"text":"-\t\t\t\t}","html":"-\t\t\t\t}","displayNoNewLineWarning":false,"position":62,"left":2121,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2122,"text":"-","html":"-","displayNoNewLineWarning":false,"position":63,"left":2122,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2123,"text":"-\t\t\t\tincludewal = true;","html":"-\t\t\t\t\u003cspan class=pl-s1\u003eincludewal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":64,"left":2123,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2124,"text":"-\t\t\t\tstreamwal = false;","html":"-\t\t\t\t\u003cspan class=pl-s1\u003estreamwal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":65,"left":2124,"right":2115},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2125,"text":"-\t\t\t\tbreak;","html":"-\t\t\t\t\u003cspan class=pl-k\u003ebreak\u003c/span\u003e;","displayNoNewLineWarning":false,"position":66,"left":2125,"right":2115},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2116,"text":" \t\t\tcase 'X':","html":" \t\t\t\u003cspan class=pl-k\u003ecase\u003c/span\u003e \u003cspan class=pl-c1\u003e\u0026#39;X\u0026#39;\u003c/span\u003e:","displayNoNewLineWarning":false,"position":67,"left":2126,"right":2116},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2127,"text":"-\t\t\t\tif (includewal)","html":"-\t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003eincludewal\u003c/span\u003e)","displayNoNewLineWarning":false,"position":68,"left":2127,"right":2116},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2117,"text":"+\t\t\t\tif (strcmp(optarg, \"n\") == 0 ||","html":"+\t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;n\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e \u003cspan class=pl-c1\u003e||\u003c/span\u003e","displayNoNewLineWarning":false,"position":69,"left":2127,"right":2117},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2118,"text":"+\t\t\t\t\tstrcmp(optarg, \"none\") == 0)","html":"+\t\t\t\t\t\u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;none\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e)","displayNoNewLineWarning":false,"position":70,"left":2127,"right":2118},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2119,"text":" \t\t\t\t{","html":" \t\t\t\t{","displayNoNewLineWarning":false,"position":71,"left":2128,"right":2119},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2129,"text":"-\t\t\t\t\tfprintf(stderr,","html":"-\t\t\t\t\t\u003cspan class=pl-en\u003efprintf\u003c/span\u003e(\u003cspan class=pl-s1\u003estderr\u003c/span\u003e,","displayNoNewLineWarning":false,"position":72,"left":2129,"right":2119},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2130,"text":"-\t\t\t\t\t _(\"%s: cannot specify both --xlog and --xlog-method\\n\"),","html":"-\t\t\t\t\t \u003cspan class=pl-en\u003e_\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;%s: cannot specify both --xlog and --xlog-method\\n\u0026quot;\u003c/span\u003e),","displayNoNewLineWarning":false,"position":73,"left":2130,"right":2119},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2131,"text":"-\t\t\t\t\t\t\tprogname);","html":"-\t\t\t\t\t\t\t\u003cspan class=pl-s1\u003eprogname\u003c/span\u003e);","displayNoNewLineWarning":false,"position":74,"left":2131,"right":2119},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2132,"text":"-\t\t\t\t\texit(1);","html":"-\t\t\t\t\t\u003cspan class=pl-en\u003eexit\u003c/span\u003e(\u003cspan class=pl-c1\u003e1\u003c/span\u003e);","displayNoNewLineWarning":false,"position":75,"left":2132,"right":2119},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2120,"text":"+\t\t\t\t\tincludewal = false;","html":"+\t\t\t\t\t\u003cspan class=pl-s1\u003eincludewal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":76,"left":2132,"right":2120},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2121,"text":"+\t\t\t\t\tstreamwal = false;","html":"+\t\t\t\t\t\u003cspan class=pl-s1\u003estreamwal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":77,"left":2132,"right":2121},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2122,"text":" \t\t\t\t}","html":" \t\t\t\t}","displayNoNewLineWarning":false,"position":78,"left":2133,"right":2122},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2134,"text":"-","html":"-","displayNoNewLineWarning":false,"position":79,"left":2134,"right":2122},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2135,"text":"-\t\t\t\tincludewal = true;","html":"-\t\t\t\t\u003cspan class=pl-s1\u003eincludewal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":80,"left":2135,"right":2122},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2136,"text":"-\t\t\t\tif (strcmp(optarg, \"f\") == 0 ||","html":"-\t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;f\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e \u003cspan class=pl-c1\u003e||\u003c/span\u003e","displayNoNewLineWarning":false,"position":81,"left":2136,"right":2122},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2123,"text":"+\t\t\t\telse if (strcmp(optarg, \"f\") == 0 ||","html":"+\t\t\t\t\u003cspan class=pl-k\u003eelse\u003c/span\u003e \u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;f\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e \u003cspan class=pl-c1\u003e||\u003c/span\u003e","displayNoNewLineWarning":false,"position":82,"left":2136,"right":2123},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2124,"text":" \t\t\t\t\tstrcmp(optarg, \"fetch\") == 0)","html":" \t\t\t\t\t\u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;fetch\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e)","displayNoNewLineWarning":false,"position":83,"left":2137,"right":2124},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2125,"text":"+\t\t\t\t{","html":"+\t\t\t\t{","displayNoNewLineWarning":false,"position":84,"left":2137,"right":2125},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2126,"text":"+\t\t\t\t\tincludewal = true;","html":"+\t\t\t\t\t\u003cspan class=pl-s1\u003eincludewal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":85,"left":2137,"right":2126},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2127,"text":" \t\t\t\t\tstreamwal = false;","html":" \t\t\t\t\t\u003cspan class=pl-s1\u003estreamwal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":86,"left":2138,"right":2127},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2128,"text":"+\t\t\t\t}","html":"+\t\t\t\t}","displayNoNewLineWarning":false,"position":87,"left":2138,"right":2128},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2129,"text":" \t\t\t\telse if (strcmp(optarg, \"s\") == 0 ||","html":" \t\t\t\t\u003cspan class=pl-k\u003eelse\u003c/span\u003e \u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;s\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e \u003cspan class=pl-c1\u003e||\u003c/span\u003e","displayNoNewLineWarning":false,"position":88,"left":2139,"right":2129},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2130,"text":" \t\t\t\t\t\t strcmp(optarg, \"stream\") == 0)","html":" \t\t\t\t\t\t \u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;stream\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e)","displayNoNewLineWarning":false,"position":89,"left":2140,"right":2130},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2131,"text":"+\t\t\t\t{","html":"+\t\t\t\t{","displayNoNewLineWarning":false,"position":90,"left":2140,"right":2131},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2132,"text":"+\t\t\t\t\tincludewal = true;","html":"+\t\t\t\t\t\u003cspan class=pl-s1\u003eincludewal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":91,"left":2140,"right":2132},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2133,"text":" \t\t\t\t\tstreamwal = true;","html":" \t\t\t\t\t\u003cspan class=pl-s1\u003estreamwal\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":92,"left":2141,"right":2133},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2134,"text":"+\t\t\t\t}","html":"+\t\t\t\t}","displayNoNewLineWarning":false,"position":93,"left":2141,"right":2134},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2135,"text":" \t\t\t\telse","html":" \t\t\t\t\u003cspan class=pl-k\u003eelse\u003c/span\u003e","displayNoNewLineWarning":false,"position":94,"left":2142,"right":2135},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2136,"text":" \t\t\t\t{","html":" \t\t\t\t{","displayNoNewLineWarning":false,"position":95,"left":2143,"right":2136},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2137,"text":" \t\t\t\t\tfprintf(stderr,","html":" \t\t\t\t\t\u003cspan class=pl-en\u003efprintf\u003c/span\u003e(\u003cspan class=pl-s1\u003estderr\u003c/span\u003e,","displayNoNewLineWarning":false,"position":96,"left":2144,"right":2137},{"stylingDirective":null,"type":"DELETION","blobLineNumber":2145,"text":"-\t\t\t\t\t\t\t_(\"%s: invalid xlog-method option \\\"%s\\\", must be \\\"fetch\\\" or \\\"stream\\\"\\n\"),","html":"-\t\t\t\t\t\t\t\u003cspan class=\"pl-en\"\u003e_\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e\"%s: invalid xlog-method option \\\"%s\\\", must be \\\"fetch\\\"\u003cspan class=\"x x-first x-last\"\u003e \u003c/span\u003eor \\\"\u003cspan class=\"x x-first x-last\"\u003estream\u003c/span\u003e\\\"\\n\"\u003c/span\u003e),","displayNoNewLineWarning":false,"position":97,"left":2145,"right":2137},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":2138,"text":"+\t\t\t\t\t\t\t_(\"%s: invalid xlog-method option \\\"%s\\\", must be \\\"fetch\\\", \\\"stream\\\" or \\\"none\\\"\\n\"),","html":"+\t\t\t\t\t\t\t\u003cspan class=\"pl-en\"\u003e_\u003c/span\u003e(\u003cspan class=\"pl-s\"\u003e\"%s: invalid xlog-method option \\\"%s\\\", must be \\\"fetch\\\"\u003cspan class=\"x x-first x-last\"\u003e, \\\"stream\\\" \u003c/span\u003eor \\\"\u003cspan class=\"x x-first x-last\"\u003enone\u003c/span\u003e\\\"\\n\"\u003c/span\u003e),","displayNoNewLineWarning":false,"position":98,"left":2145,"right":2138},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2139,"text":" \t\t\t\t\t\t\tprogname, optarg);","html":" \t\t\t\t\t\t\t\u003cspan class=pl-s1\u003eprogname\u003c/span\u003e, \u003cspan class=pl-s1\u003eoptarg\u003c/span\u003e);","displayNoNewLineWarning":false,"position":99,"left":2146,"right":2139},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2140,"text":" \t\t\t\t\texit(1);","html":" \t\t\t\t\t\u003cspan class=pl-en\u003eexit\u003c/span\u003e(\u003cspan class=pl-c1\u003e1\u003c/span\u003e);","displayNoNewLineWarning":false,"position":100,"left":2147,"right":2140},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":2141,"text":" \t\t\t\t}","html":" \t\t\t\t}","displayNoNewLineWarning":false,"position":101,"left":2148,"right":2141}],"diffNumber":1,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":2367,"linesChanged":49,"newTreeEntry":{"lineCount":2367,"path":"src/bin/pg_basebackup/pg_basebackup.c","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"src/bin/pg_basebackup/pg_basebackup.c","mode":100644},"linesAdded":21,"linesDeleted":28,"path":"src/bin/pg_basebackup/pg_basebackup.c","pathDigest":"ed4d82fd0d77f33a1f9489cade8a2a8168589d6e299043252d0d372373447e29","status":"MODIFIED","truncatedReason":null,"oldOid":"1d25779284fe1ba08ecd57e647292a9deb241376","newOid":"9a4d51077c96c10322582211781bb969b51822ff","copilotChatReference":null,"deletedSha":"1d25779284fe1ba08ecd57e647292a9deb241376","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":3,"text":"@@ -4,7 +4,7 @@","html":"@@ -4,7 +4,7 @@","displayNoNewLineWarning":false,"position":0,"left":3,"right":3},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":4,"text":" use Config;","html":" \u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e Config;","displayNoNewLineWarning":false,"position":1,"left":4,"right":4},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":5,"text":" use PostgresNode;","html":" \u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e PostgresNode;","displayNoNewLineWarning":false,"position":2,"left":5,"right":5},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":6,"text":" use TestLib;","html":" \u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e TestLib;","displayNoNewLineWarning":false,"position":3,"left":6,"right":6},{"stylingDirective":null,"type":"DELETION","blobLineNumber":7,"text":"-use Test::More tests =\u003e 69;","html":"-\u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e Test::More \u003cspan class=\"pl-c1\"\u003etests\u003c/span\u003e \u003cspan class=\"pl-k\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan class=\"x x-first x-last\"\u003e69\u003c/span\u003e;","displayNoNewLineWarning":false,"position":4,"left":7,"right":6},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":7,"text":"+use Test::More tests =\u003e 71;","html":"+\u003cspan class=\"pl-k\"\u003euse\u003c/span\u003e Test::More \u003cspan class=\"pl-c1\"\u003etests\u003c/span\u003e \u003cspan class=\"pl-k\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan class=\"x x-first x-last\"\u003e71\u003c/span\u003e;","displayNoNewLineWarning":false,"position":5,"left":7,"right":7},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":8,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":6,"left":8,"right":8},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":9,"text":" program_help_ok('pg_basebackup');","html":" program_help_ok(\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003epg_basebackup\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":7,"left":9,"right":9},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":10,"text":" program_version_ok('pg_basebackup');","html":" program_version_ok(\u003c 10000 span class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003epg_basebackup\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":8,"left":10,"right":10},{"stylingDirective":null,"type":"HUNK","blobLineNumber":62,"text":"@@ -63,7 +63,7 @@","html":"@@ -63,7 +63,7 @@","displayNoNewLineWarning":false,"position":9,"left":62,"right":62},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":63,"text":" \tclose FILE;","html":" \t\u003cspan class=\"pl-c1\"\u003eclose\u003c/span\u003e FILE;","displayNoNewLineWarning":false,"position":10,"left":63,"right":63},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":64,"text":" }","html":" }","displayNoNewLineWarning":false,"position":11,"left":64,"right":64},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":65,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":12,"left":65,"right":65},{"stylingDirective":null,"type":"DELETION","blobLineNumber":66,"text":"-$node-\u003ecommand_ok([ 'pg_basebackup', '-D', \"$tempdir/backup\" ],","html":"-\u003cspan class=\"pl-smi\"\u003e$node\u003c/span\u003e\u003cspan class=\"pl-k\"\u003e-\u0026gt;\u003c/span\u003ecommand_ok([ \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003epg_basebackup\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e-D\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$tempdir\u003c/span\u003e/backup\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e ],","displayNoNewLineWarning":false,"position":13,"left":66,"right":65},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":66,"text":"+$node-\u003ecommand_ok([ 'pg_basebackup', '-D', \"$tempdir/backup\", '-X', 'none' ],","html":"+\u003cspan class=\"pl-smi\"\u003e$node\u003c/span\u003e\u003cspan class=\"pl-k\"\u003e-\u0026gt;\u003c/span\u003ecommand_ok([ \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003epg_basebackup\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e-D\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$tempdir\u003c/span\u003e/backup\u003cspan class=\"pl-pds\"\u003e\"\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"x x-first\"\u003e, \u003c/span\u003e\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds x\"\u003e'\u003c/span\u003e\u003cspan class=\"x\"\u003e-X\u003c/span\u003e\u003cspan class=\"pl-pds x\"\u003e'\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"x\"\u003e, \u003c/span\u003e\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds x\"\u003e'\u003c/span\u003e\u003cspan class=\"x\"\u003enone\u003c/span\u003e\u003cspan class=\"pl-pds x x-last\"\u003e'\u003c/span\u003e\u003c/span\u003e ],","displayNoNewLineWarning":false,"position":14,"left":66,"right":66},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":67,"text":" \t'pg_basebackup runs');","html":" \t\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003epg_basebackup runs\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":15,"left":67,"right":67},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":68,"text":" ok(-f \"$tempdir/backup/PG_VERSION\", 'backup was created');","html":" ok(\u003cspan class=\"pl-k\"\u003e-f\u003c/span\u003e \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$tempdir\u003c/span\u003e/backup/PG_VERSION\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003ebackup was created\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":16,"left":68,"right":68},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":69,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":17,"left":69,"right":69},{"stylingDirective":null,"type":"HUNK","blobLineNumber":224,"text":"@@ -225,6 +225,11 @@","html":"@@ -225,6 +225,11 @@","displayNoNewLineWarning":false,"position":18,"left":224,"right":224},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":225,"text":" \tqr/^primary_conninfo = '.*port=$port.*'\\n/m,","html":" \t\u003cspan class=\"pl-sr\"\u003e\u003cspan class=\"pl-pds\"\u003e\u003cspan class=\"pl-c1\"\u003eqr\u003c/span\u003e/\u003c/span\u003e^primary_conninfo = \u0026#39;.*port=\u003cspan class=\"pl-smi\"\u003e$port\u003c/span\u003e.*\u0026#39;\u003cspan class=\"pl-cce\"\u003e\\n\u003c/span\u003e\u003cspan class=\"pl-pds\"\u003e/\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"pl-sr\"\u003e\u003cspan class=\"pl-pds\"\u003e\u003cspan class=\"pl-k\"\u003em\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e,","displayNoNewLineWarning":false,"position":19,"left":225,"right":225},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":226,"text":" \t'recovery.conf sets primary_conninfo');","html":" \t\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003erecovery.conf sets primary_conninfo\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":20,"left":226,"right":226},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":227,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":21,"left":227,"right":227},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":228,"text":"+$node-\u003ecommand_ok([ 'pg_basebackup', '-D', \"$tempdir/backupxd\" ],","html":"+\u003cspan class=\"pl-smi\"\u003e$node\u003c/span\u003e\u003cspan class=\"pl-k\"\u003e-\u0026gt;\u003c/span\u003ecommand_ok([ \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003epg_basebackup\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e-D\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$tempdir\u003c/span\u003e/backupxd\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003c/span\u003e ],","displayNoNewLineWarning":false,"position":22,"left":227,"right":228},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":229,"text":"+\t'pg_basebackup runs in default xlog mode');","html":"+\t\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003epg_basebackup runs in default xlog mode\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":23,"left":227,"right":229},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":230,"text":"+ok(grep(/^[0-9A-F]{24}$/, slurp_dir(\"$tempdir/backupxd/pg_wal\")),","html":"+ok(\u003cspan class=\"pl-c1\"\u003egrep\u003c/span\u003e(\u003cspan class=\"pl-sr\"\u003e\u003cspan class=\"pl-pds\"\u003e/\u003c/span\u003e^[0-9A-F]{24}\u003cspan class=\"pl-k\"\u003e$\u003c/span\u003e\u003cspan class=\"pl-pds\"\u003e/\u003c/span\u003e\u003c/span\u003e, slurp_dir(\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$tempdir\u003c/span\u003e/backupxd/pg_wal\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003c/span\u003e)),","displayNoNewLineWarning":false,"position":24,"left":227,"right":230},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":231,"text":"+\t'WAL files copied');","html":"+\t\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003eWAL files copied\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":25,"left":227,"right":231},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":232,"text":"+","html":"+","displayNoNewLineWarning":false,"position":26,"left":227,"right":232},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":233,"text":" $node-\u003ecommand_ok(","html":" \u003cspan class=\"pl-smi\"\u003e$node\u003c/span\u003e\u003cspan class=\"pl-k\"\u003e-\u0026gt;\u003c/span\u003ecommand_ok(","displayNoNewLineWarning":false,"position":27,"left":228,"right":233},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":234,"text":" \t[ 'pg_basebackup', '-D', \"$tempdir/backupxf\", '-X', 'fetch' ],","html":" \t[ \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003epg_basebackup\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e-D\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$tempdir\u003c/span\u003e/backupxf\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e-X\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003efetch\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e ],","displayNoNewLineWarning":false,"position":28,"left":229,"right":234},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":235,"text":" \t'pg_basebackup -X fetch runs');","html":" \t\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003epg_basebackup -X fetch runs\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":29,"left":230,"right":235}],"diffNumber":2,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":280,"linesChanged":9,"newTreeEntry":{"lineCount":280,"path":"src/bin/pg_basebackup/t/010_pg_basebackup.pl","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"src/bin/pg_basebackup/t/010_pg_basebackup.pl","mode":100644},"linesAdded":7,"linesDeleted":2,"path":"src/bin/pg_basebackup/t/010_pg_basebackup.pl","pathDigest":"701bff70529eeef25c7dc1f89cc6918cad96fa6119449c7c6a09251435bd56fc","status":"MODIFIED","truncatedReason":null,"oldOid":"1d25779284fe1ba08ecd57e647292a9deb241376","newOid":"9a4d51077c96c10322582211781bb969b51822ff","copilotChatReference":null,"deletedSha":"1d25779284fe1ba08ecd57e647292a9deb241376","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":483,"text":"@@ -484,7 +484,7 @@ sub backup","html":"@@ -484,7 +484,7 @@ sub backup","displayNoNewLineWarning":false,"position":0,"left":483,"right":483},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":484,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":1,"left":484,"right":484},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":485,"text":" \tprint \"# Taking pg_basebackup $backup_name from node \\\"$name\\\"\\n\";","html":" \t\u003cspan class=\"pl-c1\"\u003eprint\u003c/span\u003e \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e# Taking pg_basebackup \u003cspan class=\"pl-smi\"\u003e$backup_name\u003c/span\u003e from node \u003cspan class=\"pl-cce\"\u003e\\\u0026quot;\u003c/span\u003e\u003cspan class=\"pl-smi\"\u003e$name\u003c/span\u003e\u003cspan class=\"pl-cce\"\u003e\\\u0026quot;\\n\u003c/span\u003e\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003c/span\u003e;","displayNoNewLineWarning":false,"position":2,"left":485,"right":485},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":486,"text":" \tTestLib::system_or_bail('pg_basebackup', '-D', $backup_path, '-p', $port,","html":" \tTestLib::system_or_bail(\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003epg_basebackup\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e-D\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-smi\"\u003e$backup_path\u003c/span\u003e, \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e-p\u003cspan class=\"pl-pds\"\u003e\u0026#39;\u003c/span\u003e\u003c/span\u003e, \u003cspan class=\"pl-smi\"\u003e$port\u003c/span\u003e,","displayNoNewLineWarning":false,"position":3,"left":486,"right":486},{"stylingDirective":null,"type":"DELETION","blobLineNumber":487,"text":"-\t\t'-x', '--no-sync');","html":"-\t\t\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e-\u003cspan class=\"x x-first\"\u003ex\u003c/span\u003e\u003cspan class=\"pl-pds x\"\u003e'\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"x\"\u003e, \u003c/span\u003e\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds x\"\u003e'\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e-\u003c/span\u003e-no-sync\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":4,"left":487,"right":486},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":487,"text":"+\t\t'--no-sync');","html":"+\t\t\u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e--no-sync\u003cspan class=\"pl-pds\"\u003e'\u003c/span\u003e\u003c/span\u003e);","displayNoNewLineWarning":false,"position":5,"left":487,"right":487},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":488,"text":" \tprint \"# Backup finished\\n\";","html":" \t\u003cspan class=\"pl-c1\"\u003eprint\u003c/span\u003e \u003cspan class=\"pl-s\"\u003e\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e# Backup finished\u003cspan class=\"pl-cce\"\u003e\\n\u003c/span\u003e\u003cspan class=\"pl-pds\"\u003e\u0026quot;\u003c/span\u003e\u003c/span\u003e;","displayNoNewLineWarning":false,"position":6,"left":488,"right":488},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":489,"text":" }","html":" }","displayNoNewLineWarning":false,"position":7,"left":489,"right":489},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":490,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":8,"left":490,"right":490}],"diffNumber":3,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":1334,"linesChanged":2,"newTreeEntry":{"lineCount":1334,"path":"src/test/perl/PostgresNode.pm","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"src/test/perl/PostgresNode.pm","mode":100644},"linesAdded":1,"linesDeleted":1,"path":"src/test/perl/PostgresNode.pm","pathDigest":"1219f3240f3211bfd01a360b773c395e626de3b81e93ff044bdc7470fde513c7","status":"MODIFIED","truncatedReason":null,"oldOid":"1d25779284fe1ba08ecd57e647292a9deb241376","newOid":"9a4d51077c96c10322582211781bb969b51822ff","copilotChatReference":null,"deletedSha":"1d25779284fe1ba08ecd57e647292a9deb241376","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null}],"splitViewPreference":"unified","ignoreWhitespace":false,"repoOwnerGlobalRelayId":"MDEyOk9yZ2FuaXphdGlvbjE3NzU0Mw==","commentsPreference":"visible","diffLineSpacingPreference":"relaxed","useMonospaceFont":false,"pasteUrlLinkAsPlainText":false,"userNotices":[],"path":"/postgres/postgres/commit/9a4d51077c96c10322582211781bb969b51822ff","fileTreeExpanded":true,"headerInfo":{"additions":50,"deletions":52,"filesChanged":4,"filesChangedString":"4"},"moreDiffsToLoad":false,"asyncDiffLoadInfo":{"startIndex":4,"truncated":false,"byteCount":8302,"lineShownCount":231},"commentInfo":{"canComment":false,"locked":false,"canLock":false,"repoArchived":false},"csrf_tokens":{"/users/diffview?diff=split":{"post":"ZdSVL89-kUFOe2uGhN4D_g4r27asYyM8NXdmt1Ea1hZ9yH_R0YLvr8kwidBOuj3IhmS5byCKpgSB8xwSdjKFog"},"/users/diffview?diff=unified":{"post":"6-kVxlfPVxXiFGPLC8Huw5G0KioJcDFpupalCWrB66Hz9f84STMp-2VfgZ3BpdD1GftI84WZtFEOEt-sTem4FQ"},"/notifications/thread":{"post":"BCt5UiFjtirKeUxO8eQK0ebUb-YXXklUlRh8CTYhfN5_cu5f45_Eh-nRCNEzH99uoXsSxyxP0CylkD5Ba-1VRw"}}},"title":"Make wal streaming the default mode for pg_basebackup · postgres/postgres@9a4d510","appPayload":{"helpUrl":"https://docs.github.com","findInDiffWorkerPath":"/assets-cdn/worker/find-in-diff-worker-2bfe39677d14.js","enabled_features":{"diff_ux_refresh_beta":false,"diff_inline_comments":true,"diff_ux_refresh_ssr_five":false,"diff_ux_refresh_ssr_ten":false,"react_diff_line_type_character_correction":true}}}

Commit 9a4d510

Browse files
committed
Make wal streaming the default mode for pg_basebackup
Since streaming is now supported for all output formats, make this the default as this is what most people want. To get the old behavior, the parameter -X none can be specified to turn it off. This also removes the parameter -x for fetch, now requiring -X fetch to be specified to use that. Reviewed by Vladimir Rusinov, Michael Paquier and Simon Riggs
1 parent 1d25779 commit 9a4d510

File tree

4 files changed

+50
-52
lines changed

4 files changed

+50
-52
lines changed

doc/src/sgml/ref/pg_basebackup.sgml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ PostgreSQL documentation
5656
and <filename>pg_hba.conf</filename> must explicitly permit the replication
5757
connection. The server must also be configured
5858
with <xref linkend="guc-max-wal-senders"> set high enough to leave at least
59-
one session available for the backup.
59+
one session available for the backup and one for WAL streaming (if used).
6060
</para>
6161

6262
<para>
@@ -85,10 +85,8 @@ PostgreSQL documentation
8585
</listitem>
8686
<listitem>
8787
<para>
88-
There is no guarantee that all WAL files required for the backup are archived
89-
at the end of backup. If you are planning to use the backup for an archive
90-
recovery and want to ensure that all required files are available at that moment,
91-
you need to include them into the backup by using the <literal>-x</> option.
88+
If you are using <literal>-X none</>, there is no guarantee that all
89+
WAL files required for the backup are archived at the end of backup.
9290
</para>
9391
</listitem>
9492
<listitem>
@@ -284,34 +282,33 @@ PostgreSQL documentation
284282
</listitem>
285283
</varlistentry>
286284

287-
<varlistentry>
288-
<term><option>-x</option></term>
289-
<term><option>--xlog</option></term>
290-
<listitem>
291-
<para>
292-
Using this option is equivalent of using <literal>-X</literal> with
293-
method <literal>fetch</literal>.
294-
</para>
295-
</listitem>
296-
</varlistentry>
297-
298285
<varlistentry>
299286
<term><option>-X <replaceable class="parameter">method</replaceable></option></term>
300287
<term><option>--xlog-method=<replaceable class="parameter">method</replaceable></option></term>
301288
<listitem>
302289
<para>
303290
Includes the required transaction log files (WAL files) in the
304291
backup. This will include all transaction logs generated during
305-
the backup. If this option is specified, it is possible to start
306-
a postmaster directly in the extracted directory without the need
307-
to consult the log archive, thus making this a completely standalone
308-
backup.
292+
the backup. Unless the method <literal>none</literal> is specified,
293+
it is possible to start a postmaster directly in the extracted
294+
directory without the need to consult the log archive, thus
295+
making this a completely standalone backup.
309296
</para>
310297
<para>
311298
The following methods for collecting the transaction logs are
312299
supported:
313300

314301
<variablelist>
302+
<varlistentry>
303+
<term><literal>n</literal></term>
304+
<term><literal>none</literal></term>
305+
<listitem>
306+
<para>
307+
Don't include transaction log in the backup.
308+
</para>
309+
</listitem>
310+
</varlistentry>
311+
315312
<varlistentry>
316313
<term><literal>f</literal></term>
317314
<term><literal>fetch</literal></term>
@@ -349,6 +346,9 @@ PostgreSQL documentation
349346
named <filename>pg_wal.tar</filename> (if the server is a version
350347
earlier than 10, the file will be named <filename>pg_xlog.tar</filename>).
351348
</para>
349+
<para>
350+
This value is the default.
351+
</para>
352352
</listitem>
353353
</varlistentry>
354354
</variablelist>
@@ -699,7 +699,7 @@ PostgreSQL documentation
699699
To create a backup of a single-tablespace local database and compress
700700
this with <productname>bzip2</productname>:
701701
<screen>
702-
<prompt>$</prompt> <userinput>pg_basebackup -D - -Ft | bzip2 &gt; backup.tar.bz2</userinput>
702+
<prompt>$</prompt> <userinput>pg_basebackup -D - -Ft -X fetch | bzip2 &gt; backup.tar.bz2</userinput>
703703
</screen>
704704
(This command will fail if there are multiple tablespaces in the
705705
database.)

src/bin/pg_basebackup/pg_basebackup.c

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ static bool noclean = false;
7171
static bool showprogress = false;
7272
static int verbose = 0;
7373
static int compresslevel = 0;
74-
static bool includewal = false;
75-
static bool streamwal = false;
74+
static bool includewal = true;
75+
static bool streamwal = true;
7676
static bool fastcheckpoint = false;
7777
static bool writerecoveryconf = false;
7878
static bool do_sync = true;
@@ -325,8 +325,7 @@ usage(void)
325325
printf(_(" -S, --slot=SLOTNAME replication slot to use\n"));
326326
printf(_(" -T, --tablespace-mapping=OLDDIR=NEWDIR\n"
327327
" relocate tablespace in OLDDIR to NEWDIR\n"));
328-
printf(_(" -x, --xlog include required WAL files in backup (fetch mode)\n"));
329-
printf(_(" -X, --xlog-method=fetch|stream\n"
328+
printf(_(" -X, --xlog-method=none|fetch|stream\n"
330329
" include required WAL files with specified method\n"));
331330
printf(_(" --xlogdir=XLOGDIR location for the transaction log directory\n"));
332331
printf(_(" -z, --gzip compress tar output\n"));
@@ -1700,7 +1699,11 @@ BaseBackup(void)
17001699
*/
17011700
if (streamwal && !CheckServerVersionForStreaming(conn))
17021701
{
1703-
/* Error message already written in CheckServerVersionForStreaming() */
1702+
/*
1703+
* Error message already written in CheckServerVersionForStreaming(),
1704+
* but add a hint about using -X none.
1705+
*/
1706+
fprintf(stderr, _("HINT: use -X none or -X fetch to disable log streaming\n"));
17041707
disconnect_and_exit(1);
17051708
}
17061709

@@ -2035,7 +2038,6 @@ main(int argc, char **argv)
20352038
{"write-recovery-conf", no_argument, NULL, 'R'},
20362039
{"slot", required_argument, NULL, 'S'},
20372040
{"tablespace-mapping", required_argument, NULL, 'T'},
2038-
{"xlog", no_argument, NULL, 'x'},
20392041
{"xlog-method", required_argument, NULL, 'X'},
20402042
{"gzip", no_argument, NULL, 'z'},
20412043
{"compress", required_argument, NULL, 'Z'},
@@ -2078,7 +2080,7 @@ main(int argc, char **argv)
20782080

20792081
atexit(cleanup_directories_atexit);
20802082

2081-
while ((c = getopt_long(argc, argv, "D:F:r:RT:xX:l:nNzZ:d:c:h:p:U:s:S:wWvP",
2083+
while ((c = getopt_long(argc, argv, "D:F:r:RT:X:l:nNzZ:d:c:h:p:U:s:S:wWvP",
20822084
long_options, &option_index)) != -1)
20832085
{
20842086
switch (c)
@@ -2111,38 +2113,29 @@ main(int argc, char **argv)
21112113
case 'T':
21122114
tablespace_list_append(optarg);
21132115
break;
2114-
case 'x':
2115-
if (includewal)
2116-
{
2117-
fprintf(stderr,
2118-
_("%s: cannot specify both --xlog and --xlog-method\n"),
2119-
progname);
2120-
exit(1);
2121-
}
2122-
2123-
includewal = true;
2124-
streamwal = false;
2125-
break;
21262116
case 'X':
2127-
if (includewal)
2117+
if (strcmp(optarg, "n") == 0 ||
2118+
strcmp(optarg, "none") == 0)
21282119
{
2129-
fprintf(stderr,
2130-
_("%s: cannot specify both --xlog and --xlog-method\n"),
2131-
progname);
2132-
exit(1);
2120+
includewal = false;
2121+
streamwal = false;
21332122
}
2134-
2135-
includewal = true;
2136-
if (strcmp(optarg, "f") == 0 ||
2123+
else if (strcmp(optarg, "f") == 0 ||
21372124
strcmp(optarg, "fetch") == 0)
2125+
{
2126+
includewal = true;
21382127
streamwal = false;
2128+
}
21392129
else if (strcmp(optarg, "s") == 0 ||
21402130
strcmp(optarg, "stream") == 0)
2131+
{
2132+
includewal = true;
21412133
streamwal = true;
2134+
}
21422135
else
21432136
{
21442137
fprintf(stderr,
2145-
_("%s: invalid xlog-method option \"%s\", must be \"fetch\" or \"stream\"\n"),
2138+
_("%s: invalid xlog-method option \"%s\", must be \"fetch\", \"stream\" or \"none\"\n"),
21462139
progname, optarg);
21472140
exit(1);
21482141
}

src/bin/pg_basebackup/t/010_pg_basebackup.pl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
use Config;
55
use PostgresNode;
66
use TestLib;
7-
use Test::More tests => 69;
7+
use Test::More tests => 71;
88

99
program_help_ok('pg_basebackup');
1010
program_version_ok('pg_basebackup');
@@ -63,7 +63,7 @@
6363
close FILE;
6464
}
6565

66-
$node->command_ok([ 'pg_basebackup', '-D', "$tempdir/backup" ],
66+
$node->command_ok([ 'pg_basebackup', '-D', "$tempdir/backup", '-X', 'none' ],
6767
'pg_basebackup runs');
6868
ok(-f "$tempdir/backup/PG_VERSION", 'backup was created');
6969

@@ -225,6 +225,11 @@
225225
qr/^primary_conninfo = '.*port=$port.*'\n/m,
226226
'recovery.conf sets primary_conninfo');
227227

228+
$node->command_ok([ 'pg_basebackup', '-D', "$tempdir/backupxd" ],
229+
'pg_basebackup runs in default xlog mode');
230+
ok(grep(/^[0-9A-F]{24}$/, slurp_dir("$tempdir/backupxd/pg_wal")),
231+
'WAL files copied');
232+
228233
$node->command_ok(
229234
[ 'pg_basebackup', '-D', "$tempdir/backupxf", '-X', 'fetch' ],
230235
'pg_basebackup -X fetch runs');

src/test/perl/PostgresNode.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ sub backup
484484

485485
print "# Taking pg_basebackup $backup_name from node \"$name\"\n";
486486
TestLib::system_or_bail('pg_basebackup', '-D', $backup_path, '-p', $port,
487-
'-x', '--no-sync');
487+
'--no-sync');
488488
print "# Backup finished\n";
489489
}
490490

0 commit comments

Comments
 (0)
0