You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{"payload":{"commit":{"oid":"776621a5e4796fa214b6b29a7ca134f6c138572a","url":"/postgres/postgres/commit/776621a5e4796fa214b6b29a7ca134f6c138572a","authoredDate":"2024-01-30T16:31:09.000+05:30","committedDate":"2024-01-30T16:49:28.000+05:30","shortMessage":null,"shortMessageMarkdown":"\u003cdiv\u003eAdd a failover option to subscriptions.\u003c/div\u003e","shortMessageMarkdownLink":null,"bodyMessageHtml":"This commit introduces a new subscription option named 'failover', which\nprovides users with the ability to set the failover property of the\nreplication slot on the publisher when creating or altering a\nsubscription.\n\nThis uses the replication commands introduced by commit \u003ca class=\"commit-link\" data-hovercard-type=\"commit\" data-hovercard-url=\"https://github.com/postgres/postgres/commit/73292404370c9900a96e2bebdc7144f7010339cf/hovercard\" href=\"https://github.com/postgres/postgres/commit/73292404370c9900a96e2bebdc7144f7010339cf\"\u003e\u003ctt\u003e7329240\u003c/tt\u003e\u003c/a\u003e to\nenable the failover option for a logical replication slot.\n\nIf the failover option is set to true, the associated replication slots\n(i.e. the main slot and the table sync slots) in the upstream database are\nenabled to be synchronized to the standbys. Note that the capability to\nsync the replication slots will be added in subsequent commits.\n\nThanks to Masahiko Sawada for the design inputs.\n\nAuthor: Shveta Malik, Hou Zhijie, Ajin Cherian\nReviewed-by: Peter Smith, Bertrand Drouvot, Dilip Kumar, Masahiko Sawada, Nisha Moond, Kuroda Hayato, Amit Kapila\nDiscussion: \u003ca href=\"https://postgr.es/m/514f6f2f-6833-4539-39f1-96cd1e011f23@enterprisedb.com\" rel=\"nofollow\"\u003ehttps://postgr.es/m/514f6f2f-6833-4539-39f1-96cd1e011f23@enterprisedb.com\u003c/a\u003e","authors":[{"login":null,"displayName":"Amit Kapila","avatarUrl":"https://github.githubassets.com/images/gravatars/gravatar-user-420.png","isGitHub":false}],"committerAttribution":false,"committer":{"login":null,"displayName":"Amit Kapila","avatarUrl":"https://github.githubassets.com/images/gravatars/gravatar-user-420.png","isGitHub":false},"parents":["b527ebc1d37aa82b771dc9c76111bed1bce35a05"],"globalRelayId":"C_kwDOAA4m0toAKDc3NjYyMWE1ZTQ3OTZmYTIxNGI2YjI5YTdjYTEzNGY2YzEzODU3MmE","sha1":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","sha2":"776621a5e4796fa214b6b29a7ca134f6c138572a"},"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":7999,"text":"@@ -8000,6 +8000,17 @@ SCRAM-SHA-256$\u003creplaceable\u003e\u0026lt;iteration count\u0026gt;\u003c/replaceable\u003e:\u003creplaceable\u003e\u0026l","html":"@@ -8000,6 +8000,17 @@ SCRAM-SHA-256$\u0026lt;replaceable\u0026gt;\u0026amp;lt;iteration count\u0026amp;gt;\u0026lt;/replaceable\u0026gt;:\u0026lt;replaceable\u0026gt;\u0026amp;l","displayNoNewLineWarning":false,"position":0,"left":7999,"right":7999},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":8000,"text":" \u003c/para\u003e\u003c/entry\u003e","html":" \u0026lt;/para\u0026gt;\u0026lt;/entry\u0026gt;","displayNoNewLineWarning":false,"position":1,"left":8000,"right":8000},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":8001,"text":" \u003c/row\u003e","html":" \u0026lt;/row\u0026gt;","displayNoNewLineWarning":false,"position":2,"left":8001,"right":8001},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":8002,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":3,"left":8002,"right":8002},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8003,"text":"+ \u003crow\u003e","html":"+ \u0026lt;row\u0026gt;","displayNoNewLineWarning":false,"position":4,"left":8002,"right":8003},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8004,"text":"+ \u003centry role=\"catalog_table_entry\"\u003e\u003cpara role=\"column_definition\"\u003e","html":"+ \u0026lt;entry role=\u0026quot;catalog_table_entry\u0026quot;\u0026gt;\u0026lt;para role=\u0026quot;column_definition\u0026quot;\u0026gt;","displayNoNewLineWarning":false,"position":5,"left":8002,"right":8004},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8005,"text":"+ \u003cstructfield\u003esubfailover\u003c/structfield\u003e \u003ctype\u003ebool\u003c/type\u003e","html":"+ \u0026lt;structfield\u0026gt;subfailover\u0026lt;/structfield\u0026gt; \u0026lt;type\u0026gt;bool\u0026lt;/type\u0026gt;","displayNoNewLineWarning":false,"position":6,"left":8002,"right":8005},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8006,"text":"+ \u003c/para\u003e","html":"+ \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":7,"left":8002,"right":8006},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8007,"text":"+ \u003cpara\u003e","html":"+ \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":8,"left":8002,"right":8007},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8008,"text":"+ If true, the associated replication slots (i.e. the main slot and the","html":"+ If true, the associated replication slots (i.e. the main slot and the","displayNoNewLineWarning":false,"position":9,"left":8002,"right":8008},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8009,"text":"+ table sync slots) in the upstream database are enabled to be","html":"+ table sync slots) in the upstream database are enabled to be","displayNoNewLineWarning":false,"position":10,"left":8002,"right":8009},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8010,"text":"+ synchronized to the standbys","html":"+ synchronized to the standbys","displayNoNewLineWarning":false,"position":11,"left":8002,"right":8010},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8011,"text":"+ \u003c/para\u003e\u003c/entry\u003e","html":"+ \u0026lt;/para\u0026gt;\u0026lt;/entry\u0026gt;","displayNoNewLineWarning":false,"position":12,"left":8002,"right":8011},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8012,"text":"+ \u003c/row\u003e","html":"+ \u0026lt;/row\u0026gt;","displayNoNewLineWarning":false,"position":13,"left":8002,"right":8012},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":8013,"text":"+","html":"+","displayNoNewLineWarning":false,"position":14,"left":8002,"right":8013},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":8014,"text":" \u003crow\u003e","html":" \u0026lt;row\u0026gt;","displayNoNewLineWarning":false,"position":15,"left":8003,"right":8014},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":8015,"text":" \u003centry role=\"catalog_table_entry\"\u003e\u003cpara role=\"column_definition\"\u003e","html":" \u0026lt;entry role=\u0026quot;catalog_table_entry\u0026quot;\u0026gt;\u0026lt;para role=\u0026quot;column_definition\u0026quot;\u0026gt;","displayNoNewLineWarning":false,"position":16,"left":8004,"right":8015},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":8016,"text":" \u003cstructfield\u003esubconninfo\u003c/structfield\u003e \u003ctype\u003etext\u003c/type\u003e","html":" \u0026lt;structfield\u0026gt;subconninfo\u0026lt;/structfield\u0026gt; \u0026lt;type\u0026gt;text\u0026lt;/type\u0026gt;","displayNoNewLineWarning":false,"position":17,"left":8005,"right":8016}],"diffNumber":0,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":9705,"linesChanged":11,"newTreeEntry":{"lineCount":9705,"path":"doc/src/sgml/catalogs.sgml","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"doc/src/sgml/catalogs.sgml","mode":100644},"linesAdded":11,"linesDeleted":0,"path":"doc/src/sgml/catalogs.sgml","pathDigest":"686ae8747787a3c04698ca610350c2b7dc84618c5b28d4b90e94f6f8cd47bd8e","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":225,"text":"@@ -226,10 +226,31 @@ ALTER SUBSCRIPTION \u003creplaceable class=\"parameter\"\u003ename\u003c/replaceable\u003e RENAME TO \u003c","html":"@@ -226,10 +226,31 @@ ALTER SUBSCRIPTION \u0026lt;replaceable class=\u0026quot;parameter\u0026quot;\u0026gt;name\u0026lt;/replaceable\u0026gt; RENAME TO \u0026lt;","displayNoNewLineWarning":false,"position":0,"left":225,"right":225},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":226,"text":" \u003clink linkend=\"sql-createsubscription-params-with-streaming\"\u003e\u003cliteral\u003estreaming\u003c/literal\u003e\u003c/link\u003e,","html":" \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-streaming\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;streaming\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;,","displayNoNewLineWarning":false,"position":1,"left":226,"right":226},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":227,"text":" \u003clink linkend=\"sql-createsubscription-params-with-disable-on-error\"\u003e\u003cliteral\u003edisable_on_error\u003c/literal\u003e\u003c/link\u003e,","html":" \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-disable-on-error\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;disable_on_error\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;,","displayNoNewLineWarning":false,"position":2,"left":227,"right":227},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":228,"text":" \u003clink linkend=\"sql-createsubscription-params-with-password-required\"\u003e\u003cliteral\u003epassword_required\u003c/literal\u003e\u003c/link\u003e,","html":" \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-password-required\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;password_required\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;,","displayNoNewLineWarning":false,"position":3,"left":228,"right":228},{"stylingDirective":null,"type":"DELETION","blobLineNumber":229,"text":"- \u003clink linkend=\"sql-createsubscription-params-with-run-as-owner\"\u003e\u003cliteral\u003erun_as_owner\u003c/literal\u003e\u003c/link\u003e, and","html":"- \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-run-as-owner\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;run_as_owner\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;, and","displayNoNewLineWarning":false,"position":4,"left":229,"right":228},{"stylingDirective":null,"type":"DELETION","blobLineNumber":230,"text":"- \u003clink linkend=\"sql-createsubscription-params-with-origin\"\u003e\u003cliteral\u003eorigin\u003c/literal\u003e\u003c/link\u003e.","html":"- \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-origin\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;origin\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;.","displayNoNewLineWarning":false,"position":5,"left":230,"right":228},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":229,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-run-as-owner\"\u003e\u003cliteral\u003erun_as_owner\u003c/literal\u003e\u003c/link\u003e,","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-run-as-owner\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;run_as_owner\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;,","displayNoNewLineWarning":false,"position":6,"left":230,"right":229},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":230,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-origin\"\u003e\u003cliteral\u003eorigin\u003c/literal\u003e\u003c/link\u003e, and","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-origin\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;origin\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;, and","displayNoNewLineWarning":false,"position":7,"left":230,"right":230},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":231,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-failover\"\u003e\u003cliteral\u003efailover\u003c/literal\u003e\u003c/link\u003e.","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-failover\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;.","displayNoNewLineWarning":false,"position":8,"left":230,"right":231},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":232,"text":" Only a superuser can set \u003cliteral\u003epassword_required = false\u003c/literal\u003e.","html":" Only a superuser can set \u0026lt;literal\u0026gt;password_required = false\u0026lt;/literal\u0026gt;.","displayNoNewLineWarning":false,"position":9,"left":231,"right":232},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":233,"text":" \u003c/para\u003e","html":" \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":10,"left":232,"right":233},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":234,"text":"+","html":"+","displayNoNewLineWarning":false,"position":11,"left":232,"right":234},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":235,"text":"+ \u003cpara\u003e","html":"+ \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":12,"left":232,"right":235},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":236,"text":"+ When altering the","html":"+ When altering the","displayNoNewLineWarning":false,"position":13,"left":232,"right":236},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":237,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-slot-name\"\u003e\u003cliteral\u003eslot_name\u003c/literal\u003e\u003c/link\u003e,","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-slot-name\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;slot_name\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;,","displayNoNewLineWarning":false,"position":14,"left":232,"right":237},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":238,"text":"+ the \u003cliteral\u003efailover\u003c/literal\u003e property value of the named slot may differ from the","html":"+ the \u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt; property value of the named slot may differ from the","displayNoNewLineWarning":false,"position":15,"left":232,"right":238},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":239,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-failover\"\u003e\u003cliteral\u003efailover\u003c/literal\u003e\u003c/link\u003e","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-failover\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;","displayNoNewLineWarning":false,"position":16,"left":232,"right":239},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":240,"text":"+ parameter specified in the subscription. When creating the slot,","html":"+ parameter specified in the subscription. When creating the slot,","displayNoNewLineWarning":false,"position":17,"left":232,"right":240},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":241,"text":"+ ensure the slot \u003cliteral\u003efailover\u003c/literal\u003e property matches the","html":"+ ensure the slot \u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt; property matches the","displayNoNewLineWarning":false,"position":18,"left":232,"right":241},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":242,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-failover\"\u003e\u003cliteral\u003efailover\u003c/literal\u003e\u003c/link\u003e","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-failover\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;","displayNoNewLineWarning":false,"position":19,"left":232,"right":242},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":243,"text":"+ parameter value of the subscription. Otherwise, the slot on the","html":"+ parameter value of the subscription. Otherwise, the slot on the","displayNoNewLineWarning":false,"position":20,"left":232,"right":243},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":244,"text":"+ publisher may behave differently from what subscription's","html":"+ publisher may behave differently from what subscription\u0026#39;s","displayNoNewLineWarning":false,"position":21,"left":232,"right":244},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":245,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-failover\"\u003e\u003cliteral\u003efailover\u003c/literal\u003e\u003c/link\u003e","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-failover\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;","displayNoNewLineWarning":false,"position":22,"left":232,"right":245},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":246,"text":"+ option says. The slot on the publisher could either be","html":"+ option says. The slot on the publisher could either be","displayNoNewLineWarning":false,"position":23,"left":232,"right":246},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":247,"text":"+ synced to the standbys even when the subscription's","html":"+ synced to the standbys even when the subscription\u0026#39;s","displayNoNewLineWarning":false,"position":24,"left":232,"right":247},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":248,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-failover\"\u003e\u003cliteral\u003efailover\u003c/literal\u003e\u003c/link\u003e","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-failover\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;","displayNoNewLineWarning":false,"position":25,"left":232,"right":248},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":249,"text":"+ option is disabled or could be disabled for sync","html":"+ option is disabled or could be disabled for sync","displayNoNewLineWarning":false,"position":26,"left":232,"right":249},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":250,"text":"+ even when the subscription's","html":"+ even when the subscription\u0026#39;s","displayNoNewLineWarning":false,"position":27,"left":232,"right":250},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":251,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-failover\"\u003e\u003cliteral\u003efailover\u003c/literal\u003e\u003c/link\u003e","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-failover\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;","displayNoNewLineWarning":false,"position":28,"left":232,"right":251},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":252,"text":"+ option is enabled.","html":"+ option is enabled.","displayNoNewLineWarning":false,"position":29,"left":232,"right":252},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":253,"text":"+ \u003c/para\u003e","html":"+ \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":30,"left":232,"right":253},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":254,"text":" \u003c/listitem\u003e","html":" \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":31,"left":233,"right":254},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":255,"text":" \u003c/varlistentry\u003e","html":" \u0026lt;/varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":32,"left":234,"right":255},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":256,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":33,"left":235,"right":256}],"diffNumber":1,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":361,"linesChanged":25,"newTreeEntry":{"lineCount":361,"path":"doc/src/sgml/ref/alter_subscription.sgml","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"doc/src/sgml/ref/alter_subscription.sgml","mode":100644},"linesAdded":23,"linesDeleted":2,"path":"doc/src/sgml/ref/alter_subscription.sgml","pathDigest":"c8d962f08b7d50397df7bbb26a0d60711dee5c3f59d166d9b24b2aa6ce7b7ffe","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":116,"text":"@@ -117,19 +117,22 @@ CREATE SUBSCRIPTION \u003creplaceable class=\"parameter\"\u003esubscription_name\u003c/replaceabl","html":"@@ -117,19 +117,22 @@ CREATE SUBSCRIPTION \u0026lt;replaceable class=\u0026quot;parameter\u0026quot;\u0026gt;subscription_name\u0026lt;/replaceabl","displayNoNewLineWarning":false,"position":0,"left":116,"right":116},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":117,"text":" command should connect to the publisher at all. The default","html":" command should connect to the publisher at all. The default","displayNoNewLineWarning":false,"position":1,"left":117,"right":117},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":118,"text":" is \u003cliteral\u003etrue\u003c/literal\u003e. Setting this to","html":" is \u0026lt;literal\u0026gt;true\u0026lt;/literal\u0026gt;. Setting this to","displayNoNewLineWarning":false,"position":2,"left":118,"right":118},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":119,"text":" \u003cliteral\u003efalse\u003c/literal\u003e will force the values of","html":" \u0026lt;literal\u0026gt;false\u0026lt;/literal\u0026gt; will force the values of","displayNoNewLineWarning":false,"position":3,"left":119,"right":119},{"stylingDirective":null,"type":"DELETION","blobLineNumber":120,"text":"- \u003cliteral\u003ecreate_slot\u003c/literal\u003e, \u003cliteral\u003eenabled\u003c/literal\u003e and","html":"- \u0026lt;literal\u0026gt;create_slot\u0026lt;/literal\u0026gt;, \u0026lt;literal\u0026gt;enabled\u0026lt;/literal\u0026gt; and","displayNoNewLineWarning":false,"position":4,"left":120,"right":119},{"stylingDirective":null,"type":"DELETION","blobLineNumber":121,"text":"- \u003cliteral\u003ecopy_data\u003c/literal\u003e to \u003cliteral\u003efalse\u003c/literal\u003e.","html":"- \u0026lt;literal\u0026gt;copy_data\u0026lt;/literal\u0026gt; to \u0026lt;literal\u0026gt;false\u0026lt;/literal\u0026gt;.","displayNoNewLineWarning":false,"position":5,"left":121,"right":119},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":120,"text":"+ \u003cliteral\u003ecreate_slot\u003c/literal\u003e, \u003cliteral\u003eenabled\u003c/literal\u003e,","html":"+ \u0026lt;literal\u0026gt;create_slot\u0026lt;/literal\u0026gt;, \u0026lt;literal\u0026gt;enabled\u0026lt;/literal\u0026gt;,","displayNoNewLineWarning":false,"position":6,"left":121,"right":120},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":121,"text":"+ \u003cliteral\u003ecopy_data\u003c/literal\u003e, and \u003cliteral\u003efailover\u003c/literal\u003e","html":"+ \u0026lt;literal\u0026gt;copy_data\u0026lt;/literal\u0026gt;, and \u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt;","displayNoNewLineWarning":false,"position":7,"left":121,"right":121},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":122,"text":"+ to \u003cliteral\u003efalse\u003c/literal\u003e.","html":"+ to \u0026lt;literal\u0026gt;false\u0026lt;/literal\u0026gt;.","displayNoNewLineWarning":false,"position":8,"left":121,"right":122},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":123,"text":" (You cannot combine setting \u003cliteral\u003econnect\u003c/literal\u003e","html":" (You cannot combine setting \u0026lt;literal\u0026gt;connect\u0026lt;/literal\u0026gt;","displayNoNewLineWarning":false,"position":9,"left":122,"right":123},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":124,"text":" to \u003cliteral\u003efalse\u003c/literal\u003e with","html":" to \u0026lt;literal\u0026gt;false\u0026lt;/literal\u0026gt; with","displayNoNewLineWarning":false,"position":10,"left":123,"right":124},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":125,"text":" setting \u003cliteral\u003ecreate_slot\u003c/literal\u003e, \u003cliteral\u003eenabled\u003c/literal\u003e,","html":" setting \u0026lt;literal\u0026gt;create_slot\u0026lt;/literal\u0026gt;, \u0026lt;literal\u0026gt;enabled\u0026lt;/literal\u0026gt;,","displayNoNewLineWarning":false,"position":11,"left":124,"right":125},{"stylingDirective":null,"type":"DELETION","blobLineNumber":125,"text":"- or \u003cliteral\u003ecopy_data\u003c/literal\u003e to \u003cliteral\u003etrue\u003c/literal\u003e.)","html":"- or \u0026lt;literal\u0026gt;copy_data\u0026lt;/literal\u0026gt; to \u0026lt;literal\u0026gt;true\u0026lt;/literal\u0026gt;.)","displayNoNewLineWarning":false,"position":12,"left":125,"right":125},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":126,"text":"+ \u003cliteral\u003ecopy_data\u003c/literal\u003e, or \u003cliteral\u003efailover\u003c/literal\u003e to","html":"+ \u0026lt;literal\u0026gt;copy_data\u0026lt;/literal\u0026gt;, or \u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt; to","displayNoNewLineWarning":false,"position":13,"left":125,"right":126},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":127,"text":"+ \u003cliteral\u003etrue\u003c/literal\u003e.)","html":"+ \u0026lt;literal\u0026gt;true\u0026lt;/literal\u0026gt;.)","displayNoNewLineWarning":false,"position":14,"left":125,"right":127},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":128,"text":" \u003c/para\u003e","html":" \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":15,"left":126,"right":128},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":129,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":16,"left":127,"right":129},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":130,"text":" \u003cpara\u003e","html":" \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":17,"left":128,"right":130},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":131,"text":" Since no connection is made when this option is","html":" Since no connection is made when this option is","displayNoNewLineWarning":false,"position":18,"left":129,"right":131},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":132,"text":" \u003cliteral\u003efalse\u003c/literal\u003e, no tables are subscribed. To initiate","html":" \u0026lt;literal\u0026gt;false\u0026lt;/literal\u0026gt;, no tables are subscribed. To initiate","displayNoNewLineWarning":false,"position":19,"left":130,"right":132},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":133,"text":" replication, you must manually create the replication slot, enable","html":" replication, you must manually create the replication slot, enable","displayNoNewLineWarning":false,"position":20,"left":131,"right":133},{"stylingDirective":null,"type":"DELETION","blobLineNumber":132,"text":"- the subscription, and refresh the subscription. See","html":"- the subscription, and refresh the subscription. See","displayNoNewLineWarning":false,"position":21,"left":132,"right":133},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":134,"text":"+ the failover if required, enable the subscription, and refresh the","html":"+ the failover if required, enable the subscription, and refresh the","displayNoNewLineWarning":false,"position":22,"left":132,"right":134},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":135,"text":"+ subscription. See","html":"+ subscription. See","displayNoNewLineWarning":false,"position":23,"left":132,"right":135},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":136,"text":" \u003cxref linkend=\"logical-replication-subscription-examples-deferred-slot\"/\u003e","html":" \u0026lt;xref linkend=\u0026quot;logical-replication-subscription-examples-deferred-slot\u0026quot;/\u0026gt;","displayNoNewLineWarning":false,"position":24,"left":133,"right":136},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":137,"text":" for examples.","html":" for examples.","displayNoNewLineWarning":false,"position":25,"left":134,"right":137},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":138,"text":" \u003c/para\u003e","html":" \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":26,"left":135,"right":138},{"stylingDirective":null,"type":"HUNK","blobLineNumber":402,"text":"@@ -400,6 +403,18 @@ CREATE SUBSCRIPTION \u003creplaceable class=\"parameter\"\u003esubscription_name\u003c/replaceabl","html":"@@ -400,6 +403,18 @@ CREATE SUBSCRIPTION \u0026lt;replaceable class=\u0026quot;parameter\u0026quot;\u0026gt;subscription_name\u0026lt;/replaceabl","displayNoNewLineWarning":false,"position":27,"left":399,"right":402},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":403,"text":" \u003c/para\u003e","html":" \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":28,"left":400,"right":403},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":404,"text":" \u003c/listitem\u003e","html":" \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":29,"left":401,"right":404},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":405,"text":" \u003c/varlistentry\u003e","html":" \u0026lt;/varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":30,"left":402,"right":405},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":406,"text":"+","html":"+","displayNoNewLineWarning":false,"position":31,"left":402,"right":406},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":407,"text":"+ \u003cvarlistentry id=\"sql-createsubscription-params-with-failover\"\u003e","html":"+ \u0026lt;varlistentry id=\u0026quot;sql-createsubscription-params-with-failover\u0026quot;\u0026gt;","displayNoNewLineWarning":false,"position":32,"left":402,"right":407},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":408,"text":"+ \u003cterm\u003e\u003cliteral\u003efailover\u003c/literal\u003e (\u003ctype\u003eboolean\u003c/type\u003e)\u003c/term\u003e","html":"+ \u0026lt;term\u0026gt;\u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt; (\u0026lt;type\u0026gt;boolean\u0026lt;/type\u0026gt;)\u0026lt;/term\u0026gt;","displayNoNewLineWarning":false,"position":33,"left":402,"right":408},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":409,"text":"+ \u003clistitem\u003e","html":"+ \u0026lt;listitem\u0026gt;","displayNoNewLineWarning":false,"position":34,"left":402,"right":409},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":410,"text":"+ \u003cpara\u003e","html":"+ \u0026lt;para\u0026gt;","displayNoNewLineWarning":false,"position":35,"left":402,"right":410},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":411,"text":"+ Specifies whether the replication slots associated with the subscription","html":"+ Specifies whether the replication slots associated with the subscription","disp
10000
layNoNewLineWarning":false,"position":36,"left":402,"right":411},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":412,"text":"+ are enabled to be synced to the standbys so that logical","html":"+ are enabled to be synced to the standbys so that logical","displayNoNewLineWarning":false,"position":37,"left":402,"right":412},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":413,"text":"+ replication can be resumed from the new primary after failover.","html":"+ replication can be resumed from the new primary after failover.","displayNoNewLineWarning":false,"position":38,"left":402,"right":413},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":414,"text":"+ The default is \u003cliteral\u003efalse\u003c/literal\u003e.","html":"+ The default is \u0026lt;literal\u0026gt;false\u0026lt;/literal\u0026gt;.","displayNoNewLineWarning":false,"position":39,"left":402,"right":414},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":415,"text":"+ \u003c/para\u003e","html":"+ \u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":40,"left":402,"right":415},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":416,"text":"+ \u003c/listitem\u003e","html":"+ \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":41,"left":402,"right":416},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":417,"text":"+ \u003c/varlistentry\u003e","html":"+ \u0026lt;/varlistentry\u0026gt;","displayNoNewLineWarning":false,"position":42,"left":402,"right":417},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":418,"text":" \u003c/variablelist\u003e\u003c/para\u003e","html":" \u0026lt;/variablelist\u0026gt;\u0026lt;/para\u0026gt;","displayNoNewLineWarning":false,"position":43,"left":403,"right":418},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":419,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":44,"left":404,"right":419},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":420,"text":" \u003c/listitem\u003e","html":" \u0026lt;/listitem\u0026gt;","displayNoNewLineWarning":false,"position":45,"left":405,"right":420}],"diffNumber":2,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":573,"linesChanged":23,"newTreeEntry":{"lineCount":573,"path":"doc/src/sgml/ref/create_subscription.sgml","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"doc/src/sgml/ref/create_subscription.sgml","mode":100644},"linesAdded":19,"linesDeleted":4,"path":"doc/src/sgml/ref/create_subscription.sgml","pathDigest":"7963a9281335fed0dd721e4dfe8bc825576904279e0a782c79695eb0f35c99c7","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":1587,"text":"@@ -1588,7 +1588,13 @@ CREATE DATABASE foo WITH TEMPLATE template0;","html":"@@ -1588,7 +1588,13 @@ CREATE DATABASE foo WITH TEMPLATE template0;","displayNoNewLineWarning":false,"position":0,"left":1587,"right":1587},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1588,"text":" dump can be restored without requiring network access to the remote","html":" dump can be restored without requiring network access to the remote","displayNoNewLineWarning":false,"position":1,"left":1588,"right":1588},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1589,"text":" servers. It is then up to the user to reactivate the subscriptions in a","html":" servers. It is then up to the user to reactivate the subscriptions in a","displayNoNewLineWarning":false,"position":2,"left":1589,"right":1589},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1590,"text":" suitable way. If the involved hosts have changed, the connection","html":" suitable way. If the involved hosts have changed, the connection","displayNoNewLineWarning":false,"position":3,"left":1590,"right":1590},{"stylingDirective":null,"type":"DELETION","blobLineNumber":1591,"text":"- information might have to be changed. It might also be appropriate to","html":"- information might have to be changed. It might also be appropriate to","displayNoNewLineWarning":false,"position":4,"left":1591,"right":1590},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1591,"text":"+ information might have to be changed. If the subscription needs to","html":"+ information might have to be changed. If the subscription needs to","displayNoNewLineWarning":false,"position":5,"left":1591,"right":1591},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1592,"text":"+ be enabled for","html":"+ be enabled for","displayNoNewLineWarning":false,"position":6,"left":1591,"right":1592},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1593,"text":"+ \u003clink linkend=\"sql-createsubscription-params-with-failover\"\u003e\u003cliteral\u003efailover\u003c/literal\u003e\u003c/link\u003e,","html":"+ \u0026lt;link linkend=\u0026quot;sql-createsubscription-params-with-failover\u0026quot;\u0026gt;\u0026lt;literal\u0026gt;failover\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;,","displayNoNewLineWarning":false,"position":7,"left":1591,"right":1593},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1594,"text":"+ then same needs to be done by executing","html":"+ then same needs to be done by executing","displayNoNewLineWarning":false,"position":8,"left":1591,"right":1594},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1595,"text":"+ \u003clink linkend=\"sql-altersubscription-params-set\"\u003e","html":"+ \u0026lt;link linkend=\u0026quot;sql-altersubscription-params-set\u0026quot;\u0026gt;","displayNoNewLineWarning":false,"position":9,"left":1591,"right":1595},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1596,"text":"+ \u003cliteral\u003eALTER SUBSCRIPTION ... SET (failover = true)\u003c/literal\u003e\u003c/link\u003e","html":"+ \u0026lt;literal\u0026gt;ALTER SUBSCRIPTION ... SET (failover = true)\u0026lt;/literal\u0026gt;\u0026lt;/link\u0026gt;","displayNoNewLineWarning":false,"position":10,"left":1591,"right":1596},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1597,"text":"+ after the slot has been created. It might also be appropriate to","html":"+ after the slot has been created. It might also be appropriate to","displayNoNewLineWarning":false,"position":11,"left":1591,"right":1597},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1598,"text":" truncate the target tables before initiating a new full table copy. If users","html":" truncate the target tables before initiating a new full table copy. If users","displayNoNewLineWarning":false,"position":12,"left":1592,"right":1598},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1599,"text":" intend to copy initial data during refresh they must create the slot with","html":" intend to copy initial data during refresh they must create the slot with","displayNoNewLineWarning":false,"position":13,"left":1593,"right":1599},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1600,"text":" \u003cliteral\u003etwo_phase = false\u003c/literal\u003e. After the initial sync, the","html":" \u0026lt;literal\u0026gt;two_phase = false\u0026lt;/literal\u0026gt;. After the initial sync, the","displayNoNewLineWarning":false,"position":14,"left":1594,"right":1600}],"diffNumber":3,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":1751,"linesChanged":8,"newTreeEntry":{"lineCount":1751,"path":"doc/src/sgml/ref/pg_dump.sgml","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"doc/src/sgml/ref/pg_dump.sgml","mode":100644},"linesAdded":7,"linesDeleted":1,"path":"doc/src/sgml/ref/pg_dump.sgml","pathDigest":"c1aac8deb74b3d1936ee8640e6c534f6cb122d6dfcf35fcc180b8d35c6942035","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":72,"text":"@@ -73,6 +73,7 @@ GetSubscription(Oid subid, bool missing_ok)","html":"@@ -73,6 +73,7 @@ GetSubscription(Oid subid, bool missing_ok)","displayNoNewLineWarning":false,"position":0,"left":72,"right":72},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":73,"text":" \tsub-\u003edisableonerr = subform-\u003esubdisableonerr;","html":" \t\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003edisableonerr\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003esubform\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003esubdisableonerr\u003c/span\u003e;","displayNoNewLineWarning":false,"position":1,"left":73,"right":73},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":74,"text":" \tsub-\u003epasswordrequired = subform-\u003esubpasswordrequired;","html":" \t\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003epasswordrequired\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003esubform\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003esubpasswordrequired\u003c/span\u003e;","displayNoNewLineWarning":false,"position":2,"left":74,"right":74},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":75,"text":" \tsub-\u003erunasowner = subform-\u003esubrunasowner;","html":" \t\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003erunasowner\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003esubform\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003esubrunasowner\u003c/span\u003e;","displayNoNewLineWarning":false,"position":3,"left":75,"right":75},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":76,"text":"+\tsub-\u003efailover = subform-\u003esubfailover;","html":"+\t\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003efailover\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003esubform\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003esubfailover\u003c/span\u003e;","displayNoNewLineWarning":false,"position":4,"left":75,"right":76},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":77,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":5,"left":76,"right":77},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":78,"text":" \t/* Get conninfo */","html":" \t\u003cspan class=pl-c\u003e/* Get conninfo */\u003c/span\u003e","displayNoNewLineWarning":false,"position":6,"left":77,"right":78},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":79,"text":" \tdatum = SysCacheGetAttrNotNull(SUBSCRIPTIONOID,","html":" \t\u003cspan class=pl-s1\u003edatum\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eSysCacheGetAttrNotNull\u003c/span\u003e(\u003cspan class=pl-c1\u003eSUBSCRIPTIONOID\u003c/span\u003e,","displayNoNewLineWarning":false,"position":7,"left":78,"right":79}],"diffNumber":4,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":555,"linesChanged":1,"newTreeEntry":{"lineCount":555,"path":"src/backend/catalog/pg_subscription.c","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"src/backend/catalog/pg_subscription.c","mode":100644},"linesAdded":1,"linesDeleted":0,"path":"src/backend/catalog/pg_subscription.c","pathDigest":"38879c4f420915bc5b8eb6ec433ba762bcf2411f61ba7f9c9166443cccc7a751","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":1357,"text":"@@ -1358,7 +1358,7 @@ REVOKE ALL ON pg_replication_origin_status FROM public;","html":"@@ -1358,7 +1358,7 @@ REVOKE ALL ON pg_replication_origin_status FROM public;","displayNoNewLineWarning":false,"position":0,"left":1357,"right":1357},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1358,"text":" REVOKE ALL ON pg_subscription FROM public;","html":" \u003cspan class=\"pl-k\"\u003eREVOKE\u003c/span\u003e ALL \u003cspan class=\"pl-k\"\u003eON\u003c/span\u003e pg_subscription \u003cspan class=\"pl-k\"\u003eFROM\u003c/span\u003e public;","displayNoNewLineWarning":false,"position":1,"left":1358,"right":1358},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1359,"text":" GRANT SELECT (oid, subdbid, subskiplsn, subname, subowner, subenabled,","html":" \u003cspan class=\"pl-k\"\u003eGRANT\u003c/span\u003e \u003cspan class=\"pl-k\"\u003eSELECT\u003c/span\u003e (\u003cspan class=\"pl-k\"\u003eoid\u003c/span\u003e, subdbid, subskiplsn, subname, subowner, subenabled,","displayNoNewLineWarning":false,"position":2,"left":1359,"right":1359},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1360,"text":" subbinary, substream, subtwophasestate, subdisableonerr,","html":" subbinary, substream, subtwophasestate, subdisableonerr,","displayNoNewLineWarning":false,"position":3,"left":1360,"right":1360},{"stylingDirective":null,"type":"DELETION","blobLineNumber":1361,"text":"-\t\t\t subpasswordrequired, subrunasowner,","html":"-\t\t\t subpasswordrequired, subrunasowner,","displayNoNewLineWarning":false,"position":4,"left":1361,"right":1360},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1361,"text":"+\t\t\t subpasswordrequired, subrunasowner, subfailover,","html":"+\t\t\t subpasswordrequired, subrunasowner,\u003cspan class=\"x x-first x-last\"\u003e subfailover,\u003c/span\u003e","displayNoNewLineWarning":false,"position":5,"left":1361,"right":1361},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1362,"text":" subslotname, subsynccommit, subpublications, suborigin)","html":" subslotname, subsynccommit, subpublications, suborigin)","displayNoNewLineWarning":false,"position":6,"left":1362,"right":1362},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1363,"text":" ON pg_subscription TO public;","html":" \u003cspan class=\"pl-k\"\u003eON\u003c/span\u003e pg_subscription TO public;","displayNoNewLineWarning":false,"position":7,"left":1363,"right":1363},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1364,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":8,"left":1364,"right":1364}],"diffNumber":5,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":1376,"linesChanged":2,"newTreeEntry":{"lineCount":1376,"path":"src/backend/catalog/system_views.sql","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"src/backend/catalog/system_views.sql","mode":100644},"linesAdded":1,"linesDeleted":1,"path":"src/backend/catalog/system_views.sql","pathDigest":"a0e160aa93677ab1087c2cd3ddf5da762966b366e40ae99a6377f1c4db8a9f23","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":68,"text":"@@ -69,8 +69,10 @@","html":"@@ -69,8 +69,10 @@","displayNoNewLineWarning":false,"position":0,"left":68,"right":68},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":69,"text":" #define SUBOPT_DISABLE_ON_ERR\t\t0x00000400","html":" \u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-c1\u003eSUBOPT_DISABLE_ON_ERR\u003c/span\u003e\t\t0x00000400","displayNoNewLineWarning":false,"position":1,"left":69,"right":69},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":70,"text":" #define SUBOPT_PASSWORD_REQUIRED\t0x00000800","html":" \u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-c1\u003eSUBOPT_PASSWORD_REQUIRED\u003c/span\u003e\t0x00000800","displayNoNewLineWarning":false,"position":2,"left":70,"right":70},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":71,"text":" #define SUBOPT_RUN_AS_OWNER\t\t\t0x00001000","html":" \u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-c1\u003eSUBOPT_RUN_AS_OWNER\u003c/span\u003e\t\t\t0x00001000","displayNoNewLineWarning":false,"position":3,"left":71,"right":71},{"stylingDirective":null,"type":"DELETION","blobLineNumber":72,"text":"-#define SUBOPT_LSN\t\t\t\t\t0x00002000","html":"-\u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-c1\u003eSUBOPT_LSN\u003c/span\u003e\t\t\t\t\t0x00002000","displayNoNewLineWarning":false,"position":4,"left":72,"right":71},{"stylingDirective":null,"type":"DELETION","blobLineNumber":73,"text":"-#define SUBOPT_ORIGIN\t\t\t\t0x00004000","html":"-\u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-c1\u003eSUBOPT_ORIGIN\u003c/span\u003e\t\t\t\t0x00004000","displayNoNewLineWarning":false,"position":5,"left":73,"right":71},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":72,"text":"+#define SUBOPT_FAILOVER\t\t\t\t0x00002000","html":"+\u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-c1\u003eSUBOPT_FAILOVER\u003c/span\u003e\t\t\t\t0x00002000","displayNoNewLineWarning":false,"position":6,"left":73,"right":72},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":73,"text":"+#define SUBOPT_LSN\t\t\t\t\t0x00004000","html":"+\u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-c1\u003eSUBOPT_LSN\u003c/span\u003e\t\t\t\t\t0x00004000","displayNoNewLineWarning":false,"position":7,"left":73,"right":73},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":74,"text":"+#define SUBOPT_ORIGIN\t\t\t\t0x00008000","html":"+\u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-c1\u003eSUBOPT_ORIGIN\u003c/span\u003e\t\t\t\t0x00008000","displayNoNewLineWarning":false,"position":8,"left":73,"right":74},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":75,"text":"+","html":"+","displayNoNewLineWarning":false,"position":9,"left":73,"right":75},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":76,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":10,"left":74,"right":76},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":77,"text":" /* check if the 'val' has 'bits' set */","html":" \u003cspan class=pl-c\u003e/* check if the \u0026#39;val\u0026#39; has \u0026#39;bits\u0026#39; set */\u003c/span\u003e","displayNoNewLineWarning":false,"position":11,"left":75,"right":77},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":78,"text":" #define IsSet(val, bits) (((val) \u0026 (bits)) == (bits))","html":" \u003cspan class=pl-k\u003e#define\u003c/span\u003e \u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003eval\u003c/span\u003e, \u003cspan class=pl-s1\u003ebits\u003c/span\u003e) (((val) \u0026amp; (bits)) == (bits))","displayNoNewLineWarning":false,"position":12,"left":76,"right":78},{"stylingDirective":null,"type":"HUNK","blobLineNumber":96,"text":"@@ -95,6 +97,7 @@ typedef struct SubOpts","html":"@@ -95,6 +97,7 @@ typedef struct SubOpts","displayNoNewLineWarning":false,"position":13,"left":94,"right":96},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":97,"text":" \tbool\t\tdisableonerr;","html":" \t\u003cspan class=pl-smi\u003ebool\u003c/span\u003e\t\t\u003cspan class=pl-c1\u003edisableonerr\u003c/span\u003e;","displayNoNewLineWarning":false,"position":14,"left":95,"right":97},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":98,"text":" \tbool\t\tpasswordrequired;","html":" \t\u003cspan class=pl-smi\u003ebool\u003c/span\u003e\t\t\u003cspan class=pl-c1\u003epasswordrequired\u003c/span\u003e;","displayNoNewLineWarning":false,"position":15,"left":96,"right":98},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":99,"text":" \tbool\t\trunasowner;","html":" \t\u003cspan class=pl-smi\u003ebool\u003c/span\u003e\t\t\u003cspan class=pl-c1\u003erunasowner\u003c/span\u003e;","displayNoNewLineWarning":false,"position":16,"left":97,"right":99},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":100,"text":"+\tbool\t\tfailover;","html":"+\t\u003cspan class=pl-smi\u003ebool\u003c/span\u003e\t\t\u003cspan class=pl-c1\u003efailover\u003c/span\u003e;","displayNoNewLineWarning":false,"position":17,"left":97,"right":100},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":101,"text":" \tchar\t *origin;","html":" \t\u003cspan class=pl-smi\u003echar\u003c/span\u003e\t \u003cspan class=pl-c1\u003e*\u003c/span\u003e\u003cspan class=pl-c1\u003eorigin\u003c/span\u003e;","displayNoNewLineWarning":false,"position":18,"left":98,"right":101},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":102,"text":" \tXLogRecPtr\tlsn;","html":" \t\u003cspan class=pl-smi\u003eXLogRecPtr\u003c/span\u003e\t\u003cspan class=pl-c1\u003elsn\u003c/span\u003e;","displayNoNewLineWarning":false,"position":19,"left":99,"right":102},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":103,"text":" } SubOpts;","html":" } \u003cspan class=pl-smi\u003eSubOpts\u003c/span\u003e;","displayNoNewLineWarning":false,"position":20,"left":100,"right":103},{"stylingDirective":null,"type":"HUNK","blobLineNumber":157,"text":"@@ -155,6 +158,8 @@ parse_subscription_options(ParseState *pstate, List *stmt_options,","html":"@@ -155,6 +158,8 @@ parse_subscription_options(ParseState *pstate, List *stmt_options,","displayNoNewLineWarning":false,"position":21,"left":154,"right":157},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":158,"text":" \t\topts-\u003epasswordrequired = true;","html":" \t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003epasswordrequired\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":22,"left":155,"right":158},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":159,"text":" \tif (IsSet(supported_opts, SUBOPT_RUN_AS_OWNER))","html":" \t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003esupported_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_RUN_AS_OWNER\u003c/span\u003e))","displayNoNewLineWarning":false,"position":23,"left":156,"right":159},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":160,"text":" \t\topts-\u003erunasowner = false;","html":" \t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003erunasowner\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":24,"left":157,"right":160},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":161,"text":"+\tif (IsSet(supported_opts, SUBOPT_FAILOVER))","html":"+\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003esupported_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_FAILOVER\u003c/span\u003e))","displayNoNewLineWarning":false,"position":25,"left":157,"right":161},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":162,"text":"+\t\topts-\u003efailover = false;","html":"+\t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003efailover\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":26,"left":157,"right":162},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":163,"text":" \tif (IsSet(supported_opts, SUBOPT_ORIGIN))","html":" \t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003esupported_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_ORIGIN\u003c/span\u003e))","displayNoNewLineWarning":false,"position":27,"left":158,"right":163},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":164,"text":" \t\topts-\u003eorigin = pstrdup(LOGICALREP_ORIGIN_ANY);","html":" \t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eorigin\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003epstrdup\u003c/span\u003e(\u003cspan class=pl-c1\u003eLOGICALREP_ORIGIN_ANY\u003c/span\u003e);","displayNoNewLineWarning":false,"position":28,"left":159,"right":164},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":165,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":29,"left":160,"right":165},{"stylingDirective":null,"type":"HUNK","blobLineNumber":307,"text":"@@ -303,6 +308,15 @@ parse_subscription_options(ParseState *pstate, List *stmt_options,","html":"@@ -303,6 +308,15 @@ parse_subscription_options(ParseState *pstate, List *stmt_options,","displayNoNewLineWarning":false,"position":30,"left":302,"right":307},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":308,"text":" \t\t\topts-\u003especified_opts |= SUBOPT_RUN_AS_OWNER;","html":" \t\t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003especified_opts\u003c/span\u003e |= \u003cspan class=pl-c1\u003eSUBOPT_RUN_AS_OWNER\u003c/span\u003e;","displayNoNewLineWarning":false,"position":31,"left":303,"right":308},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":309,"text":" \t\t\topts-\u003erunasowner = defGetBoolean(defel);","html":" \t\t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003erunasowner\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003edefGetBoolean\u003c/span\u003e(\u003cspan class=pl-s1\u003edefel\u003c/span\u003e);","displayNoNewLineWarning":false,"position":32,"left":304,"right":309},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":310,"text":" \t\t}","html":" \t\t}","displayNoNewLineWarning":false,"position":33,"left":305,"right":310},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":311,"text":"+\t\telse if (IsSet(supported_opts, SUBOPT_FAILOVER) \u0026\u0026","html":"+\t\t\u003cspan class=pl-k\u003eelse\u003c/span\u003e \u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003esupported_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_FAILOVER\u003c/span\u003e) \u003cspan class=pl-c1\u003e\u0026amp;\u0026amp;\u003c/span\u003e","displayNoNewLineWarning":false,"position":34,"left":305,"right":311},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":312,"text":"+\t\t\t\t strcmp(defel-\u003edefname, \"failover\") == 0)","html":"+\t\t\t\t \u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003edefel\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003edefname\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;failover\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e)","displayNoNewLineWarning":false,"position":35,"left":305,"right":312},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":313,"text":"+\t\t{","html":"+\t\t{","displayNoNewLineWarning":false,"position":36,"left":305,"right":313},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":314,"text":"+\t\t\tif (IsSet(opts-\u003especified_opts, SUBOPT_FAILOVER))","html":"+\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003especified_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_FAILOVER\u003c/span\u003e))","displayNoNewLineWarning":false,"position":37,"left":305,"right":314},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":315,"text":"+\t\t\t\terrorConflictingDefElem(defel, pstate);","html":"+\t\t\t\t\u003cspan class=pl-en\u003eerrorConflictingDefElem\u003c/span\u003e(\u003cspan class=pl-s1\u003edefel\u003c/span\u003e, \u003cspan class=pl-s1\u003epstate\u003c/span\u003e);","displayNoNewLineWarning":false,"position":38,"left":305,"right":315},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":316,"text":"+","html":"+","displayNoNewLineWarning":false,"position":39,"left":305,"right":316},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":317,"text":"+\t\t\topts-\u003especified_opts |= SUBOPT_FAILOVER;","html":"+\t\t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003especified_opts\u003c/span\u003e |= \u003cspan class=pl-c1\u003eSUBOPT_FAILOVER\u003c/span\u003e;","displayNoNewLineWarning":false,"position":40,"left":305,"right":317},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":318,"text":"+\t\t\topts-\u003efailover = defGetBoolean(defel);","html":"+\t\t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003efailover\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003edefGetBoolean\u003c/span\u003e(\u003cspan class=pl-s1\u003edefel\u003c/span\u003e);","displayNoNewLineWarning":false,"position":41,"left":305,"right":318},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":319,"text":"+\t\t}","html":"+\t\t}","displayNoNewLineWarning":false,"position":42,"left":305,"right":319},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":320,"text":" \t\telse if (IsSet(supported_opts, SUBOPT_ORIGIN) \u0026\u0026","html":" \t\t\u003cspan class=pl-k\u003eelse\u003c/span\u003e \u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003esupported_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_ORIGIN\u003c/span\u003e) \u003cspan class=pl-c1\u003e\u0026amp;\u0026amp;\u003c/span\u003e","displayNoNewLineWarning":false,"position":43,"left":306,"right":320},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":321,"text":" \t\t\t\t strcmp(defel-\u003edefname, \"origin\") == 0)","html":" \t\t\t\t \u003cspan class=pl-en\u003estrcmp\u003c/span\u003e(\u003cspan class=pl-s1\u003edefel\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003edefname\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;origin\u0026quot;\u003c/span\u003e) \u003cspan class=pl-c1\u003e==\u003c/span\u003e \u003cspan class=pl-c1\u003e0\u003c/span\u003e)","displayNoNewLineWarning":false,"position":44,"left":307,"right":321},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":322,"text":" \t\t{","html":" \t\t{","displayNoNewLineWarning":false,"position":45,"left":308,"right":322},{"stylingDirective":null,"type":"HUNK","blobLineNumber":401,"text":"@@ -388,6 +402,13 @@ parse_subscription_options(ParseState *pstate, List *stmt_options,","html":"@@ -388,6 +402,13 @@ parse_subscription_options(ParseState *pstate, List *stmt_options,","displayNoNewLineWarning":false,"position":46,"left":387,"right":401},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":402,"text":" \t\t\t\t\t errmsg(\"%s and %s are mutually exclusive options\",","html":" \t\t\t\t\t \u003cspan class=pl-en\u003eerrmsg\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;%s and %s are mutually exclusive options\u0026quot;\u003c/span\u003e,","displayNoNewLineWarning":false,"position":47,"left":388,"right":402},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":403,"text":" \t\t\t\t\t\t\t\"connect = false\", \"copy_data = true\")));","html":" \t\t\t\t\t\t\t\u003cspan class=pl-s\u003e\u0026quot;connect = false\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;copy_data = true\u0026quot;\u003c/span\u003e)));","displayNoNewLineWarning":false,"position":48,"left":389,"right":403},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":404,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":49,"left":390,"right":404},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":405,"text":"+\t\tif (opts-\u003efailover \u0026\u0026","html":"+\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003efailover\u003c/span\u003e \u003cspan class=pl-c1\u003e\u0026amp;\u0026amp;\u003c/span\u003e","displayNoNewLineWarning":false,"position":50,"left":390,"right":405},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":406,"text":"+\t\t\tIsSet(opts-\u003especified_opts, SUBOPT_FAILOVER))","html":"+\t\t\t\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003especified_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_FAILOVER\u003c/span\u003e))","displayNoNewLineWarning":false,"position":51,"left":390,"right":406},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":407,"text":"+\t\t\tereport(ERROR,","html":"+\t\t\t\u003cspan class=pl-en\u003eereport\u003c/span\u003e(\u003cspan class=pl-c1\u003eERROR\u003c/span\u003e,","displayNoNewLineWarning":false,"position":52,"left":390,"right":407},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":408,"text":"+\t\t\t\t\t(errcode(ERRCODE_SYNTAX_ERROR),","html":"+\t\t\t\t\t(\u003cspan class=pl-en\u003eerrcode\u003c/span\u003e(\u003cspan class=pl-c1\u003eERRCODE_SYNTAX_ERROR\u003c/span\u003e),","displayNoNewLineWarning":false,"position":53,"left":390,"right":408},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":409,"text":"+\t\t\t\t\t errmsg(\"%s and %s are mutually exclusive options\",","html":"+\t\t\t\t\t \u003cspan class=pl-en\u003eerrmsg\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;%s and %s are mutually exclusive options\u0026quot;\u003c/span\u003e,","displayNoNewLineWarning":false,"position":54,"left":390,"right":409},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":410,"text":"+\t\t\t\t\t\t\t\"connect = false\", \"failover = true\")));","html":"+\t\t\t\t\t\t\t\u003cspan class=pl-s\u003e\u0026quot;connect = false\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s\u003e\u0026quot;failover = true\u0026quot;\u003c/span\u003e)));","displayNoNewLineWarning":false,"position":55,"left":390,"right":410},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":411,"text":"+","html":"+","displayNoNewLineWarning":false,"position":56,"left":390,"right":411},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":412,"text":" \t\t/* Change the defaults of other options. */","html":" \t\t\u003cspan class=pl-c\u003e/* Change the defaults of other options. */\u003c/span\u003e","displayNoNewLineWarning":false,"position":57,"left":391,"right":412},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":413,"text":" \t\topts-\u003eenabled = false;","html":" \t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eenabled\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":58,"left":392,"right":413},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":414,"text":" \t\topts-\u003ecreate_slot = false;","html":" \t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003ecreate_slot\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e false;","displayNoNewLineWarning":false,"position":59,"left":393,"right":414},{"stylingDirective":null,"type":"HUNK","blobLineNumber":611,"text":"@@ -591,7 +612,7 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,","html":"@@ -591,7 +612,7 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,","displayNoNewLineWarning":false,"position":60,"left":590,"right":611},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":612,"text":" \t\t\t\t\t SUBOPT_SYNCHRONOUS_COMMIT | SUBOPT_BINARY |","html":" \t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_SYNCHRONOUS_COMMIT\u003c/span\u003e | \u003cspan class=pl-c1\u003eSUBOPT_BINARY\u003c/span\u003e |","displayNoNewLineWarning":false,"position":61,"left":591,"right":612},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":613,"text":" \t\t\t\t\t SUBOPT_STREAMING | SUBOPT_TWOPHASE_COMMIT |","html":" \t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_STREAMING\u003c/span\u003e | \u003cspan class=pl-c1\u003eSUBOPT_TWOPHASE_COMMIT\u003c/span\u003e |","displayNoNewLineWarning":false,"position":62,"left":592,"right":613},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":614,"text":" \t\t\t\t\t SUBOPT_DISABLE_ON_ERR | SUBOPT_PASSWORD_REQUIRED |","html":" \t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_DISABLE_ON_ERR\u003c/span\u003e | \u003cspan class=pl-c1\u003eSUBOPT_PASSWORD_REQUIRED\u003c/span\u003e |","displayNoNewLineWarning":false,"position":63,"left":593,"right":614},{"stylingDirective":null,"type":"DELETION","blobLineNumber":594,"text":"-\t\t\t\t\t SUBOPT_RUN_AS_OWNER | SUBOPT_ORIGIN);","html":"-\t\t\t\t\t \u003cspan class=\"pl-c1\"\u003eSUBOPT_RUN_AS_OWNER\u003c/span\u003e | \u003cspan class=\"pl-c1\"\u003eSUBOPT_ORIGIN\u003c/span\u003e);","displayNoNewLineWarning":false,"position":64,"left":594,"right":614},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":615,"text":"+\t\t\t\t\t SUBOPT_RUN_AS_OWNER | SUBOPT_FAILOVER | SUBOPT_ORIGIN);","html":"+\t\t\t\t\t \u003cspan class=\"pl-c1\"\u003eSUBOPT_RUN_AS_OWNER\u003c/span\u003e | \u003cspan class=\"pl-c1 x x-first\"\u003eSUBOPT_FAILOVER\u003c/span\u003e\u003cspan class=\"x x-last\"\u003e | \u003c/span\u003e\u003cspan class=\"pl-c1\"\u003eSUBOPT_ORIGIN\u003c/span\u003e);","displayNoNewLineWarning":false,"position":65,"left":594,"right":615},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":616,"text":" \tparse_subscription_options(pstate, stmt-\u003eoptions, supported_opts, \u0026opts);","html":" \t\u003cspan class=pl-en\u003eparse_subscription_options\u003c/span\u003e(\u003cspan class=pl-s1\u003epstate\u003c/span\u003e, \u003cspan class=pl-s1\u003estmt\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eoptions\u003c/span\u003e, \u003cspan class=pl-s1\u003esupported_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026amp;\u003c/span\u003e\u003cspan class=pl-s1\u003eopts\u003c/span\u003e);","displayNoNewLineWarning":false,"position":66,"left":595,"right":616},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":617,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":67,"left":596,"right":617},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":618,"text":" \t/*","html":" \t\u003cspan class=pl-c\u003e/*\u003c/span\u003e","displayNoNewLineWarning":false,"position":68,"left":597,"right":618},{"stylingDirective":null,"type":"HUNK","blobLineNumber":717,"text":"@@ -697,6 +718,7 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,","html":"@@ -697,6 +718,7 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,","displayNoNewLineWarning":false,"position":69,"left":696,"right":717},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":718,"text":" \tvalues[Anum_pg_subscription_subdisableonerr - 1] = BoolGetDatum(opts.disableonerr);","html":" \t\u003cspan class=pl-s1\u003evalues\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subdisableonerr\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eBoolGetDatum\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003edisableonerr\u003c/span\u003e);","displayNoNewLineWarning":false,"position":70,"left":697,"right":718},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":719,"text":" \tvalues[Anum_pg_subscription_subpasswordrequired - 1] = BoolGetDatum(opts.passwordrequired);","html":" \t\u003cspan class=pl-s1\u003evalues\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subpasswordrequired\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eBoolGetDatum\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003epasswordrequired\u003c/span\u003e);","displayNoNewLineWarning":false,"position":71,"left":698,"right":719},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":720,"text":" \tvalues[Anum_pg_subscription_subrunasowner - 1] = BoolGetDatum(opts.runasowner);","html":" \t\u003cspan class=pl-s1\u003evalues\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subrunasowner\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eBoolGetDatum\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003erunasowner\u003c/span\u003e);","displayNoNewLineWarning":false,"position":72,"left":699,"right":720},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":721,"text":"+\tvalues[Anum_pg_subscription_subfailover - 1] = BoolGetDatum(opts.failover);","html":"+\t\u003cspan class=pl-s1\u003evalues\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subfailover\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003eBoolGetDatum\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003efailover\u003c/span\u003e);","displayNoNewLineWarning":false,"position":73,"left":699,"right":721},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":722,"text":" \tvalues[Anum_pg_subscription_subconninfo - 1] =","html":" \t\u003cspan class=pl-s1\u003evalues\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subconninfo\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e","displayNoNewLineWarning":false,"position":74,"left":700,"right":722},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":723,"text":" \t\tCStringGetTextDatum(conninfo);","html":" \t\t\u003cspan class=pl-en\u003eCStringGetTextDatum\u003c/span\u003e(\u003cspan class=pl-s1\u003econninfo\u003c/span\u003e);","displayNoNewLineWarning":false,"position":75,"left":701,"right":723},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":724,"text":" \tif (opts.slot_name)","html":" \t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003eslot_name\u003c/span\u003e)","displayNoNewLineWarning":false,"position":76,"left":702,"right":724},{"stylingDirective":null,"type":"HUNK","blobLineNumber":828,"text":"@@ -807,7 +829,7 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,","html":"@@ -807,7 +829,7 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,","displayNoNewLineWarning":false,"position":77,"left":806,"right":828},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":829,"text":" \t\t\t\t\ttwophase_enabled = true;","html":" \t\t\t\t\t\u003cspan class=pl-s1\u003etwophase_enabled\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":78,"left":807,"right":829},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":830,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":79,"left":808,"right":830},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":831,"text":" \t\t\t\twalrcv_create_slot(wrconn, opts.slot_name, false, twophase_enabled,","html":" \t\t\t\t\u003cspan class=pl-en\u003ewalrcv_create_slot\u003c/span\u003e(\u003cspan class=pl-s1\u003ewrconn\u003c/span\u003e, \u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003eslot_name\u003c/span\u003e, false, \u003cspan class=pl-s1\u003etwophase_enabled\u003c/span\u003e,","displayNoNewLineWarning":false,"position":80,"left":809,"right":831},{"stylingDirective":null,"type":"DELETION","blobLineNumber":810,"text":"-\t\t\t\t\t\t\t\t false, CRS_NOEXPORT_SNAPSHOT, NULL);","html":"-\t\t\t\t\t\t\t\t \u003cspan class=\"x x-first x-last\"\u003efalse\u003c/span\u003e, \u003cspan class=\"pl-c1\"\u003eCRS_NOEXPORT_SNAPSHOT\u003c/span\u003e, \u003cspan class=\"pl-c1\"\u003eNULL\u003c/span\u003e);","displayNoNewLineWarning":false,"position":81,"left":810,"right":831},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":832,"text":"+\t\t\t\t\t\t\t\t opts.failover, CRS_NOEXPORT_SNAPSHOT, NULL);","html":"+\t\t\t\t\t\t\t\t \u003cspan class=\"pl-s1 x x-first\"\u003eopts\u003c/span\u003e\u003cspan class=\"x\"\u003e.\u003c/span\u003e\u003cspan class=\"pl-c1 x x-last\"\u003efailover\u003c/span\u003e, \u003cspan class=\"pl-c1\"\u003eCRS_NOEXPORT_SNAPSHOT\u003c/span\u003e, \u003cspan class=\"pl-c1\"\u003eNULL\u003c/span\u003e);","displayNoNewLineWarning":false,"position":82,"left":810,"right":832},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":833,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":83,"left":811,"right":833},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":834,"text":" \t\t\t\tif (twophase_enabled)","html":" \t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003etwophase_enabled\u003c/span\u003e)","displayNoNewLineWarning":false,"position":84,"left":812,"right":834},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":835,"text":" \t\t\t\t\tUpdateTwoPhaseState(subid, LOGICALREP_TWOPHASE_STATE_ENABLED);","html":" \t\t\t\t\t\u003cspan class=pl-en\u003eUpdateTwoPhaseState\u003c/span\u003e(\u003cspan class=pl-s1\u003esubid\u003c/span\u003e, \u003cspan class=pl-c1\u003eLOGICALREP_TWOPHASE_STATE_ENABLED\u003c/span\u003e);","displayNoNewLineWarning":false,"position":85,"left":813,"right":835},{"stylingDirective":null,"type":"HUNK","blobLineNumber":837,"text":"@@ -816,6 +838,24 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,","html":"@@ -816,6 +838,24 @@ CreateSubscription(ParseState *pstate, CreateSubscriptionStmt *stmt,","displayNoNewLineWarning":false,"position":86,"left":815,"right":837},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":838,"text":" \t\t\t\t\t\t(errmsg(\"created replication slot \\\"%s\\\" on publisher\",","html":" \t\t\t\t\t\t(\u003cspan class=pl-en\u003eerrmsg\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;created replication slot \\\u0026quot;%s\\\u0026quot; on publisher\u0026quot;\u003c/span\u003e,","displayNoNewLineWarning":false,"position":87,"left":816,"right":838},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":839,"text":" \t\t\t\t\t\t\t\topts.slot_name)));","html":" \t\t\t\t\t\t\t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003eslot_name\u003c/span\u003e)));","displayNoNewLineWarning":false,"position":88,"left":817,"right":839},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":840,"text":" \t\t\t}","html":" \t\t\t}","displayNoNewLineWarning":false,"position":89,"left":818,"right":840},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":841,"text":"+","html":"+","displayNoNewLineWarning":false,"position":90,"left":818,"right":841},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":842,"text":"+\t\t\t/*","html":"+\t\t\t\u003cspan class=pl-c\u003e/*\u003c/span\u003e","displayNoNewLineWarning":false,"position":91,"left":818,"right":842},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":843,"text":"+\t\t\t * If the slot_name is specified without the create_slot option,","html":"+\u003cspan class=pl-c\u003e\t\t\t * If the slot_name is specified without the create_slot option,\u003c/span\u003e","displayNoNewLineWarning":false,"position":92,"left":818,"right":843},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":844,"text":"+\t\t\t * it is possible that the user intends to use an existing slot on","html":"+\u003cspan class=pl-c\u003e\t\t\t * it is possible that the user intends to use an existing slot on\u003c/span\u003e","displayNoNewLineWarning":false,"position":93,"left":818,"right":844},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":845,"text":"+\t\t\t * the publisher, so here we alter the failover property of the","html":"+\u003cspan class=pl-c\u003e\t\t\t * the publisher, so here we alter the failover property of the\u003c/span\u003e","displayNoNewLineWarning":false,"position":94,"left":818,"right":845},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":846,"text":"+\t\t\t * slot to match the failover value in subscription.","html":"+\u003cspan class=pl-c\u003e\t\t\t * slot to match the failover value in subscription.\u003c/span\u003e","displayNoNewLineWarning":false,"position":95,"left":818,"right":846},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":847,"text":"+\t\t\t *","html":"+\u003cspan class=pl-c\u003e\t\t\t *\u003c/span\u003e","displayNoNewLineWarning":false,"position":96,"left":818,"right":847},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":848,"text":"+\t\t\t * We do not need to change the failover to false if the server","html":"+\u003cspan class=pl-c\u003e\t\t\t * We do not need to change the failover to false if the server\u003c/span\u003e","displayNoNewLineWarning":false,"position":97,"left":818,"right":848},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":849,"text":"+\t\t\t * does not support failover (e.g. pre-PG17).","html":"+\u003cspan class=pl-c\u003e\t\t\t * does not support failover (e.g. pre-PG17).\u003c/span\u003e","displayNoNewLineWarning":false,"position":98,"left":818,"right":849},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":850,"text":"+\t\t\t */","html":"+\u003cspan class=pl-c\u003e\t\t\t */\u003c/span\u003e","displayNoNewLineWarning":false,"position":99,"left":818,"right":850},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":851,"text":"+\t\t\telse if (opts.slot_name \u0026\u0026","html":"+\t\t\t\u003cspan class=pl-k\u003eelse\u003c/span\u003e \u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003eslot_name\u003c/span\u003e \u003cspan class=pl-c1\u003e\u0026amp;\u0026amp;\u003c/span\u003e","displayNoNewLineWarning":false,"position":100,"left":818,"right":851},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":852,"text":"+\t\t\t\t\t (opts.failover || walrcv_server_version(wrconn) \u003e= 170000))","html":"+\t\t\t\t\t (\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003efailover\u003c/span\u003e \u003cspan class=pl-c1\u003e||\u003c/span\u003e \u003cspan class=pl-en\u003ewalrcv_server_version\u003c/span\u003e(\u003cspan class=pl-s1\u003ewrconn\u003c/span\u003e) \u0026gt;= \u003cspan class=pl-c1\u003e170000\u003c/span\u003e))","displayNoNewLineWarning":false,"position":101,"left":818,"right":852},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":853,"text":"+\t\t\t{","html":"+\t\t\t{","displayNoNewLineWarning":false,"position":102,"left":818,"right":853},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":854,"text":"+\t\t\t\twalrcv_alter_slot(wrconn, opts.slot_name, opts.failover);","html":"+\t\t\t\t\u003cspan class=pl-en\u003ewalrcv_alter_slot\u003c/span\u003e(\u003cspan class=pl-s1\u003ewrconn\u003c/span\u003e, \u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003eslot_name\u003c/span\u003e, \u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003efailover\u003c/span\u003e);","displayNoNewLineWarning":false,"position":103,"left":818,"right":854},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":855,"text":"+\t\t\t\tereport(NOTICE,","html":"+\t\t\t\t\u003cspan class=pl-en\u003eereport\u003c/span\u003e(\u003cspan class=pl-c1\u003eNOTICE\u003c/span\u003e,","displayNoNewLineWarning":false,"position":104,"left":818,"right":855},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":856,"text":"+\t\t\t\t\t\t(errmsg(\"changed the failover state of replication slot \\\"%s\\\" on publisher to %s\",","html":"+\t\t\t\t\t\t(\u003cspan class=pl-en\u003eerrmsg\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;changed the failover state of replication slot \\\u0026quot;%s\\\u0026quot; on publisher to %s\u0026quot;\u003c/span\u003e,","displayNoNewLineWarning":false,"position":105,"left":818,"right":856},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":857,"text":"+\t\t\t\t\t\t\t\topts.slot_name, opts.failover ? \"true\" : \"false\")));","html":"+\t\t\t\t\t\t\t\t\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003eslot_name\u003c/span\u003e, \u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003efailover\u003c/span\u003e ? \u003cspan class=pl-s\u003e\u0026quot;true\u0026quot;\u003c/span\u003e : \u003cspan class=pl-s\u003e\u0026quot;false\u0026quot;\u003c/span\u003e)));","displayNoNewLineWarning":false,"position":106,"left":818,"right":857},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":858,"text":"+\t\t\t}","html":"+\t\t\t}","displayNoNewLineWarning":false,"position":107,"left":818,"right":858},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":859,"text":" \t\t}","html":" \t\t}","displayNoNewLineWarning":false,"position":108,"left":819,"right":859},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":860,"text":" \t\tPG_FINALLY();","html":" \t\t\u003cspan class=pl-en\u003ePG_FINALLY\u003c/span\u003e();","displayNoNewLineWarning":false,"position":109,"left":820,"right":860},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":861,"text":" \t\t{","html":" \t\t{","displayNoNewLineWarning":false,"position":110,"left":821,"right":861},{"stylingDirective":null,"type":"HUNK","blobLineNumber":1171,"text":"@@ -1132,7 +1172,8 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,","html":"@@ -1132,7 +1172,8 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,","displayNoNewLineWarning":false,"position":111,"left":1131,"right":1171},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1172,"text":" \t\t\t\t\t\t\t\t SUBOPT_SYNCHRONOUS_COMMIT | SUBOPT_BINARY |","html":" \t\t\t\t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_SYNCHRONOUS_COMMIT\u003c/span\u003e | \u003cspan class=pl-c1\u003eSUBOPT_BINARY\u003c/span\u003e |","displayNoNewLineWarning":false,"position":112,"left":1132,"right":1172},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1173,"text":" \t\t\t\t\t\t\t\t SUBOPT_STREAMING | SUBOPT_DISABLE_ON_ERR |","html":" \t\t\t\t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_STREAMING\u003c/span\u003e | \u003cspan class=pl-c1\u003eSUBOPT_DISABLE_ON_ERR\u003c/span\u003e |","displayNoNewLineWarning":false,"position":113,"left":1133,"right":1173},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1174,"text":" \t\t\t\t\t\t\t\t SUBOPT_PASSWORD_REQUIRED |","html":" \t\t\t\t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_PASSWORD_REQUIRED\u003c/span\u003e |","displayNoNewLineWarning":false,"position":114,"left":1134,"right":1174},{"stylingDirective":null,"type":"DELETION","blobLineNumber":1135,"text":"-\t\t\t\t\t\t\t\t SUBOPT_RUN_AS_OWNER | SUBOPT_ORIGIN);","html":"-\t\t\t\t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_RUN_AS_OWNER\u003c/span\u003e | \u003cspan class=pl-c1\u003eSUBOPT_ORIGIN\u003c/span\u003e);","displayNoNewLineWarning":false,"position":115,"left":1135,"right":1174},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1175,"text":"+\t\t\t\t\t\t\t\t SUBOPT_RUN_AS_OWNER | SUBOPT_FAILOVER |","html":"+\t\t\t\t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_RUN_AS_OWNER\u003c/span\u003e | \u003cspan class=pl-c1\u003eSUBOPT_FAILOVER\u003c/span\u003e |","displayNoNewLineWarning":false,"position":116,"left":1135,"right":1175},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1176,"text":"+\t\t\t\t\t\t\t\t SUBOPT_ORIGIN);","html":"+\t\t\t\t\t\t\t\t \u003cspan class=pl-c1\u003eSUBOPT_ORIGIN\u003c/span\u003e);","displayNoNewLineWarning":false,"position":117,"left":1135,"right":1176},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1177,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":118,"left":1136,"right":1177},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1178,"text":" \t\t\t\tparse_subscription_options(pstate, stmt-\u003eoptions,","html":" \t\t\t\t\u003cspan class=pl-en\u003eparse_subscription_options\u003c/span\u003e(\u003cspan class=pl-s1\u003epstate\u003c/span\u003e, \u003cspan class=pl-s1\u003estmt\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eoptions\u003c/span\u003e,","displayNoNewLineWarning":false,"position":119,"left":1137,"right":1178},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1179,"text":" \t\t\t\t\t\t\t\t\t\t supported_opts, \u0026opts);","html":" \t\t\t\t\t\t\t\t\t\t \u003cspan class=pl-s1\u003esupported_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026amp;\u003c/span\u003e\u003cspan class=pl-s1\u003eopts\u003c/span\u003e);","displayNoNewLineWarning":false,"position":120,"left":1138,"right":1179},{"stylingDirective":null,"type":"HUNK","blobLineNumber":1251,"text":"@@ -1211,6 +1252,31 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,","html":"@@ -1211,6 +1252,31 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,","displayNoNewLineWarning":false,"position":121,"left":1210,"right":1251},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1252,"text":" \t\t\t\t\treplaces[Anum_pg_subscription_subrunasowner - 1] = true;","html":" \t\t\t\t\t\u003cspan class=pl-s1\u003ereplaces\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subrunasowner\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":122,"left":1211,"right":1252},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1253,"text":" \t\t\t\t}","html":" \t\t\t\t}","displayNoNewLineWarning":false,"position":123,"left":1212,"right":1253},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1254,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":124,"left":1213,"right":1254},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1255,"text":"+\t\t\t\tif (IsSet(opts.specified_opts, SUBOPT_FAILOVER))","html":"+\t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003especified_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_FAILOVER\u003c/span\u003e))","displayNoNewLineWarning":false,"position":125,"left":1213,"right":1255},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1256,"text":"+\t\t\t\t{","html":"+\t\t\t\t{","displayNoNewLineWarning":false,"position":126,"left":1213,"right":1256},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1257,"text":"+\t\t\t\t\tif (!sub-\u003eslotname)","html":"+\t\t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (!\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eslotname\u003c/span\u003e)","displayNoNewLineWarning":false,"position":127,"left":1213,"right":1257},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1258,"text":"+\t\t\t\t\t\tereport(ERROR,","html":"+\t\t\t\t\t\t\u003cspan class=pl-en\u003eereport\u003c/span\u003e(\u003cspan class=pl-c1\u003eERROR\u003c/span\u003e,","displayNoNewLineWarning":false,"position":128,"left":1213,"right":1258},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1259,"text":"+\t\t\t\t\t\t\t\t(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),","html":"+\t\t\t\t\t\t\t\t(\u003cspan class=pl-en\u003eerrcode\u003c/span\u003e(\u003cspan class=pl-c1\u003eERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE\u003c/span\u003e),","displayNoNewLineWarning":false,"position":129,"left":1213,"right":1259},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1260,"text":"+\t\t\t\t\t\t\t\t errmsg(\"cannot set %s for a subscription that does not have a slot name\",","html":"+\t\t\t\t\t\t\t\t \u003cspan class=pl-en\u003eerrmsg\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;cannot set %s for a subscription that does not have a slot name\u0026quot;\u003c/span\u003e,","displayNoNewLineWarning":false,"position":130,"left":1213,"right":1260},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1261,"text":"+\t\t\t\t\t\t\t\t\t\t\"failover\")));","html":"+\t\t\t\t\t\t\t\t\t\t\u003cspan class=pl-s\u003e\u0026quot;failover\u0026quot;\u003c/span\u003e)));","displayNoNewLineWarning":false,"position":131,"left":1213,"right":1261},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1262,"text":"+","html":"+","displayNoNewLineWarning":false,"position":132,"left":1213,"right":1262},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1263,"text":"+\t\t\t\t\t/*","html":"+\t\t\t\t\t\u003cspan class=pl-c\u003e/*\u003c/span\u003e","displayNoNewLineWarning":false,"position":133,"left":1213,"right":1263},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1264,"text":"+\t\t\t\t\t * Do not allow changing the failover state if the","html":"+\u003cspan class=pl-c\u003e\t\t\t\t\t * Do not allow changing the failover state if the\u003c/span\u003e","displayNoNewLineWarning":false,"position":134,"left":1213,"right":1264},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1265,"text":"+\t\t\t\t\t * subscription is enabled. This is because the failover","html":"+\u003cspan class=pl-c\u003e\t\t\t\t\t * subscription is enabled. This is because the failover\u003c/span\u003e","displayNoNewLineWarning":false,"position":135,"left":1213,"right":1265},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1266,"text":"+\t\t\t\t\t * state of the slot on the publisher cannot be modified","html":"+\u003cspan class=pl-c\u003e\t\t\t\t\t * state of the slot on the publisher cannot be modified\u003c/span\u003e","displayNoNewLineWarning":false,"position":136,"left":1213,"right":1266},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1267,"text":"+\t\t\t\t\t * if the slot is currently acquired by the apply worker.","html":"+\u003cspan class=pl-c\u003e\t\t\t\t\t * if the slot is currently acquired by the apply worker.\u003c/span\u003e","displayNoNewLineWarning":false,"position":137,"left":1213,"right":1267},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1268,"text":"+\t\t\t\t\t */","html":"+\u003cspan class=pl-c\u003e\t\t\t\t\t */\u003c/span\u003e","displayNoNewLineWarning":false,"position":138,"left":1213,"right":1268},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1269,"text":"+\t\t\t\t\tif (sub-\u003eenabled)","html":"+\t\t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eenabled\u003c/span\u003e)","displayNoN
8000
ewLineWarning":false,"position":139,"left":1213,"right":1269},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1270,"text":"+\t\t\t\t\t\tereport(ERROR,","html":"+\t\t\t\t\t\t\u003cspan class=pl-en\u003eereport\u003c/span\u003e(\u003cspan class=pl-c1\u003eERROR\u003c/span\u003e,","displayNoNewLineWarning":false,"position":140,"left":1213,"right":1270},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1271,"text":"+\t\t\t\t\t\t\t\t(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),","html":"+\t\t\t\t\t\t\t\t(\u003cspan class=pl-en\u003eerrcode\u003c/span\u003e(\u003cspan class=pl-c1\u003eERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE\u003c/span\u003e),","displayNoNewLineWarning":false,"position":141,"left":1213,"right":1271},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1272,"text":"+\t\t\t\t\t\t\t\t errmsg(\"cannot set %s for enabled subscription\",","html":"+\t\t\t\t\t\t\t\t \u003cspan class=pl-en\u003eerrmsg\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;cannot set %s for enabled subscription\u0026quot;\u003c/span\u003e,","displayNoNewLineWarning":false,"position":142,"left":1213,"right":1272},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1273,"text":"+\t\t\t\t\t\t\t\t\t\t\"failover\")));","html":"+\t\t\t\t\t\t\t\t\t\t\u003cspan class=pl-s\u003e\u0026quot;failover\u0026quot;\u003c/span\u003e)));","displayNoNewLineWarning":false,"position":143,"left":1213,"right":1273},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1274,"text":"+","html":"+","displayNoNewLineWarning":false,"position":144,"left":1213,"right":1274},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1275,"text":"+\t\t\t\t\tvalues[Anum_pg_subscription_subfailover - 1] =","html":"+\t\t\t\t\t\u003cspan class=pl-s1\u003evalues\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subfailover\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e","displayNoNewLineWarning":false,"position":145,"left":1213,"right":1275},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1276,"text":"+\t\t\t\t\t\tBoolGetDatum(opts.failover);","html":"+\t\t\t\t\t\t\u003cspan class=pl-en\u003eBoolGetDatum\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003efailover\u003c/span\u003e);","displayNoNewLineWarning":false,"position":146,"left":1213,"right":1276},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1277,"text":"+\t\t\t\t\treplaces[Anum_pg_subscription_subfailover - 1] = true;","html":"+\t\t\t\t\t\u003cspan class=pl-s1\u003ereplaces\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subfailover\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e true;","displayNoNewLineWarning":false,"position":147,"left":1213,"right":1277},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1278,"text":"+\t\t\t\t}","html":"+\t\t\t\t}","displayNoNewLineWarning":false,"position":148,"left":1213,"right":1278},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1279,"text":"+","html":"+","displayNoNewLineWarning":false,"position":149,"left":1213,"right":1279},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1280,"text":" \t\t\t\tif (IsSet(opts.specified_opts, SUBOPT_ORIGIN))","html":" \t\t\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-en\u003eIsSet\u003c/span\u003e(\u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003especified_opts\u003c/span\u003e, \u003cspan class=pl-c1\u003eSUBOPT_ORIGIN\u003c/span\u003e))","displayNoNewLineWarning":false,"position":150,"left":1214,"right":1280},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1281,"text":" \t\t\t\t{","html":" \t\t\t\t{","displayNoNewLineWarning":false,"position":151,"left":1215,"right":1281},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1282,"text":" \t\t\t\t\tvalues[Anum_pg_subscription_suborigin - 1] =","html":" \t\t\t\t\t\u003cspan class=pl-s1\u003evalues\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_suborigin\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e] \u003cspan class=pl-c1\u003e=\u003c/span\u003e","displayNoNewLineWarning":false,"position":152,"left":1216,"right":1282},{"stylingDirective":null,"type":"HUNK","blobLineNumber":1518,"text":"@@ -1453,6 +1519,46 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,","html":"@@ -1453,6 +1519,46 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,","displayNoNewLineWarning":false,"position":153,"left":1452,"right":1518},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1519,"text":" \t\theap_freetuple(tup);","html":" \t\t\u003cspan class=pl-en\u003eheap_freetuple\u003c/span\u003e(\u003cspan class=pl-s1\u003etup\u003c/span\u003e);","displayNoNewLineWarning":false,"position":154,"left":1453,"right":1519},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1520,"text":" \t}","html":" \t}","displayNoNewLineWarning":false,"position":155,"left":1454,"right":1520},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1521,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":156,"left":1455,"right":1521},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1522,"text":"+\t/*","html":"+\t\u003cspan class=pl-c\u003e/*\u003c/span\u003e","displayNoNewLineWarning":false,"position":157,"left":1455,"right":1522},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1523,"text":"+\t * Try to acquire the connection necessary for altering slot.","html":"+\u003cspan class=pl-c\u003e\t * Try to acquire the connection necessary for altering slot.\u003c/span\u003e","displayNoNewLineWarning":false,"position":158,"left":1455,"right":1523},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1524,"text":"+\t *","html":"+\u003cspan class=pl-c\u003e\t *\u003c/span\u003e","displayNoNewLineWarning":false,"position":159,"left":1455,"right":1524},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1525,"text":"+\t * This has to be at the end because otherwise if there is an error while","html":"+\u003cspan class=pl-c\u003e\t * This has to be at the end because otherwise if there is an error while\u003c/span\u003e","displayNoNewLineWarning":false,"position":160,"left":1455,"right":1525},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1526,"text":"+\t * doing the database operations we won't be able to rollback altered","html":"+\u003cspan class=pl-c\u003e\t * doing the database operations we won\u0026#39;t be able to rollback altered\u003c/span\u003e","displayNoNewLineWarning":false,"position":161,"left":1455,"right":1526},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1527,"text":"+\t * slot.","html":"+\u003cspan class=pl-c\u003e\t * slot.\u003c/span\u003e","displayNoNewLineWarning":false,"position":162,"left":1455,"right":1527},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1528,"text":"+\t */","html":"+\u003cspan class=pl-c\u003e\t */\u003c/span\u003e","displayNoNewLineWarning":false,"position":163,"left":1455,"right":1528},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1529,"text":"+\tif (replaces[Anum_pg_subscription_subfailover - 1])","html":"+\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (\u003cspan class=pl-s1\u003ereplaces\u003c/span\u003e[\u003cspan class=pl-s1\u003eAnum_pg_subscription_subfailover\u003c/span\u003e \u003cspan class=pl-c1\u003e-\u003c/span\u003e \u003cspan class=pl-c1\u003e1\u003c/span\u003e])","displayNoNewLineWarning":false,"position":164,"left":1455,"right":1529},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1530,"text":"+\t{","html":"+\t{","displayNoNewLineWarning":false,"position":165,"left":1455,"right":1530},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1531,"text":"+\t\tbool\t\tmust_use_password;","html":"+\t\t\u003cspan class=pl-smi\u003ebool\u003c/span\u003e\t\t\u003cspan class=pl-s1\u003emust_use_password\u003c/span\u003e;","displayNoNewLineWarning":false,"position":166,"left":1455,"right":1531},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1532,"text":"+\t\tchar\t *err;","html":"+\t\t\u003cspan class=pl-smi\u003echar\u003c/span\u003e\t \u003cspan class=pl-c1\u003e*\u003c/span\u003e\u003cspan class=pl-s1\u003eerr\u003c/span\u003e;","displayNoNewLineWarning":false,"position":167,"left":1455,"right":1532},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1533,"text":"+\t\tWalReceiverConn *wrconn;","html":"+\t\t\u003cspan class=pl-smi\u003eWalReceiverConn\u003c/span\u003e \u003cspan class=pl-c1\u003e*\u003c/span\u003e\u003cspan class=pl-s1\u003ewrconn\u003c/span\u003e;","displayNoNewLineWarning":false,"position":168,"left":1455,"right":1533},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1534,"text":"+","html":"+","displayNoNewLineWarning":false,"position":169,"left":1455,"right":1534},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1535,"text":"+\t\t/* Load the library providing us libpq calls. */","html":"+\t\t\u003cspan class=pl-c\u003e/* Load the library providing us libpq calls. */\u003c/span\u003e","displayNoNewLineWarning":false,"position":170,"left":1455,"right":1535},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1536,"text":"+\t\tload_file(\"libpqwalreceiver\", false);","html":"+\t\t\u003cspan class=pl-en\u003eload_file\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;libpqwalreceiver\u0026quot;\u003c/span\u003e, false);","displayNoNewLineWarning":false,"position":171,"left":1455,"right":1536},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1537,"text":"+","html":"+","displayNoNewLineWarning":false,"position":172,"left":1455,"right":1537},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1538,"text":"+\t\t/* Try to connect to the publisher. */","html":"+\t\t\u003cspan class=pl-c\u003e/* Try to connect to the publisher. */\u003c/span\u003e","displayNoNewLineWarning":false,"position":173,"left":1455,"right":1538},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1539,"text":"+\t\tmust_use_password = sub-\u003epasswordrequired \u0026\u0026 !sub-\u003eownersuperuser;","html":"+\t\t\u003cspan class=pl-s1\u003emust_use_password\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003epasswordrequired\u003c/span\u003e \u003cspan class=pl-c1\u003e\u0026amp;\u0026amp;\u003c/span\u003e !\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eownersuperuser\u003c/span\u003e;","displayNoNewLineWarning":false,"position":174,"left":1455,"right":1539},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1540,"text":"+\t\twrconn = walrcv_connect(sub-\u003econninfo, true, must_use_password,","html":"+\t\t\u003cspan class=pl-s1\u003ewrconn\u003c/span\u003e \u003cspan class=pl-c1\u003e=\u003c/span\u003e \u003cspan class=pl-en\u003ewalrcv_connect\u003c/span\u003e(\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003econninfo\u003c/span\u003e, true, \u003cspan class=pl-s1\u003emust_use_password\u003c/span\u003e,","displayNoNewLineWarning":false,"position":175,"left":1455,"right":1540},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1541,"text":"+\t\t\t\t\t\t\t\tsub-\u003ename, \u0026err);","html":"+\t\t\t\t\t\t\t\t\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003ename\u003c/span\u003e, \u003cspan class=pl-c1\u003e\u0026amp;\u003c/span\u003e\u003cspan class=pl-s1\u003eerr\u003c/span\u003e);","displayNoNewLineWarning":false,"position":176,"left":1455,"right":1541},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1542,"text":"+\t\tif (!wrconn)","html":"+\t\t\u003cspan class=pl-k\u003eif\u003c/span\u003e (!\u003cspan class=pl-s1\u003ewrconn\u003c/span\u003e)","displayNoNewLineWarning":false,"position":177,"left":1455,"right":1542},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1543,"text":"+\t\t\tereport(ERROR,","html":"+\t\t\t\u003cspan class=pl-en\u003eereport\u003c/span\u003e(\u003cspan class=pl-c1\u003eERROR\u003c/span\u003e,","displayNoNewLineWarning":false,"position":178,"left":1455,"right":1543},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1544,"text":"+\t\t\t\t\t(errcode(ERRCODE_CONNECTION_FAILURE),","html":"+\t\t\t\t\t(\u003cspan class=pl-en\u003eerrcode\u003c/span\u003e(\u003cspan class=pl-c1\u003eERRCODE_CONNECTION_FAILURE\u003c/span\u003e),","displayNoNewLineWarning":false,"position":179,"left":1455,"right":1544},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1545,"text":"+\t\t\t\t\t errmsg(\"could not connect to the publisher: %s\", err)));","html":"+\t\t\t\t\t \u003cspan class=pl-en\u003eerrmsg\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;could not connect to the publisher: %s\u0026quot;\u003c/span\u003e, \u003cspan class=pl-s1\u003eerr\u003c/span\u003e)));","displayNoNewLineWarning":false,"position":180,"left":1455,"right":1545},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1546,"text":"+","html":"+","displayNoNewLineWarning":false,"position":181,"left":1455,"right":1546},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1547,"text":"+\t\tPG_TRY();","html":"+\t\t\u003cspan class=pl-en\u003ePG_TRY\u003c/span\u003e();","displayNoNewLineWarning":false,"position":182,"left":1455,"right":1547},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1548,"text":"+\t\t{","html":"+\t\t{","displayNoNewLineWarning":false,"position":183,"left":1455,"right":1548},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1549,"text":"+\t\t\twalrcv_alter_slot(wrconn, sub-\u003eslotname, opts.failover);","html":"+\t\t\t\u003cspan class=pl-en\u003ewalrcv_alter_slot\u003c/span\u003e(\u003cspan class=pl-s1\u003ewrconn\u003c/span\u003e, \u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eslotname\u003c/span\u003e, \u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003efailover\u003c/span\u003e);","displayNoNewLineWarning":false,"position":184,"left":1455,"right":1549},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1550,"text":"+","html":"+","displayNoNewLineWarning":false,"position":185,"left":1455,"right":1550},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1551,"text":"+\t\t\tereport(NOTICE,","html":"+\t\t\t\u003cspan class=pl-en\u003eereport\u003c/span\u003e(\u003cspan class=pl-c1\u003eNOTICE\u003c/span\u003e,","displayNoNewLineWarning":false,"position":186,"left":1455,"right":1551},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1552,"text":"+\t\t\t\t\t(errmsg(\"changed the failover state of replication slot \\\"%s\\\" on publisher to %s\",","html":"+\t\t\t\t\t(\u003cspan class=pl-en\u003eerrmsg\u003c/span\u003e(\u003cspan class=pl-s\u003e\u0026quot;changed the failover state of replication slot \\\u0026quot;%s\\\u0026quot; on publisher to %s\u0026quot;\u003c/span\u003e,","displayNoNewLineWarning":false,"position":187,"left":1455,"right":1552},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1553,"text":"+\t\t\t\t\t\t\tsub-\u003eslotname, opts.failover ? \"true\" : \"false\")));","html":"+\t\t\t\t\t\t\t\u003cspan class=pl-s1\u003esub\u003c/span\u003e\u003cspan class=pl-c1\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=pl-c1\u003eslotname\u003c/span\u003e, \u003cspan class=pl-s1\u003eopts\u003c/span\u003e.\u003cspan class=pl-c1\u003efailover\u003c/span\u003e ? \u003cspan class=pl-s\u003e\u0026quot;true\u0026quot;\u003c/span\u003e : \u003cspan class=pl-s\u003e\u0026quot;false\u0026quot;\u003c/span\u003e)));","displayNoNewLineWarning":false,"position":188,"left":1455,"right":1553},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1554,"text":"+\t\t}","html":"+\t\t}","displayNoNewLineWarning":false,"position":189,"left":1455,"right":1554},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1555,"text":"+\t\tPG_FINALLY();","html":"+\t\t\u003cspan class=pl-en\u003ePG_FINALLY\u003c/span\u003e();","displayNoNewLineWarning":false,"position":190,"left":1455,"right":1555},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1556,"text":"+\t\t{","html":"+\t\t{","displayNoNewLineWarning":false,"position":191,"left":1455,"right":1556},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1557,"text":"+\t\t\twalrcv_disconnect(wrconn);","html":"+\t\t\t\u003cspan class=pl-en\u003ewalrcv_disconnect\u003c/span\u003e(\u003cspan class=pl-s1\u003ewrconn\u003c/span\u003e);","displayNoNewLineWarning":false,"position":192,"left":1455,"right":1557},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1558,"text":"+\t\t}","html":"+\t\t}","displayNoNewLineWarning":false,"position":193,"left":1455,"right":1558},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1559,"text":"+\t\tPG_END_TRY();","html":"+\t\t\u003cspan class=pl-en\u003ePG_END_TRY\u003c/span\u003e();","displayNoNewLineWarning":false,"position":194,"left":1455,"right":1559},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1560,"text":"+\t}","html":"+\t}","displayNoNewLineWarning":false,"position":195,"left":1455,"right":1560},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1561,"text":"+","html":"+","displayNoNewLineWarning":false,"position":196,"left":1455,"right":1561},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1562,"text":" \ttable_close(rel, RowExclusiveLock);","html":" \t\u003cspan class=pl-en\u003etable_close\u003c/span\u003e(\u003cspan class=pl-s1\u003erel\u003c/span\u003e, \u003cspan class=pl-s1\u003eRowExclusiveLock\u003c/span\u003e);","displayNoNewLineWarning":false,"position":197,"left":1456,"right":1562},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1563,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":198,"left":1457,"right":1563},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1564,"text":" \tObjectAddressSet(myself, SubscriptionRelationId, subid);","html":" \t\u003cspan class=pl-en\u003eObjectAddressSet\u003c/span\u003e(\u003cspan class=pl-s1\u003emyself\u003c/span\u003e, \u003cspan class=pl-s1\u003eSubscriptionRelationId\u003c/span\u003e, \u003cspan class=pl-s1\u003esubid\u003c/span\u003e);","displayNoNewLineWarning":false,"position":199,"left":1458,"right":1564}],"diffNumber":6,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":2461,"linesChanged":116,"newTreeEntry":{"lineCount":2461,"path":"src/backend/commands/subscriptioncmds.c","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"src/backend/commands/subscriptioncmds.c","mode":100644},"linesAdded":111,"linesDeleted":5,"path":"src/backend/commands/subscriptioncmds.c","pathDigest":"d729c809ce03180c391eaba8a498e846f46a05a292ad4daa2d06f16ce43ba1de","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":1429,"text":"@@ -1430,7 +1430,7 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)","html":"@@ -1430,7 +1430,7 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos)","displayNoNewLineWarning":false,"position":0,"left":1429,"right":1429},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1430,"text":" \t */","html":" \u003cspan class=pl-c\u003e\t */\u003c/span\u003e","displayNoNewLineWarning":false,"position":1,"left":1430,"right":1430},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1431,"text":" \twalrcv_create_slot(LogRepWorkerWalRcvConn,","html":" \t\u003cspan class=pl-en\u003ewalrcv_create_slot\u003c/span\u003e(\u003cspan class=pl-s1\u003eLogRepWorkerWalRcvConn\u003c/span\u003e,","displayNoNewLineWarning":false,"position":2,"left":1431,"right":1431},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1432,"text":" \t\t\t\t\t slotname, false /* permanent */ , false /* two_phase */ ,","html":" \t\t\t\t\t \u003cspan class=pl-s1\u003eslotname\u003c/span\u003e, false \u003cspan class=pl-c\u003e/* permanent */\u003c/span\u003e , false \u003cspan class=pl-c\u003e/* two_phase */\u003c/span\u003e ,","displayNoNewLineWarning":false,"position":3,"left":1432,"right":1432},{"stylingDirective":null,"type":"DELETION","blobLineNumber":1433,"text":"-\t\t\t\t\t false,","html":"-\t\t\t\t\t \u003cspan class=\"x x-first x-last\"\u003efalse\u003c/span\u003e,","displayNoNewLineWarning":false,"position":4,"left":1433,"right":1432},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":1433,"text":"+\t\t\t\t\t MySubscription-\u003efailover,","html":"+\t\t\t\t\t \u003cspan class=\"pl-s1 x x-first\"\u003eMySubscription\u003c/span\u003e\u003cspan class=\"pl-c1 x\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"pl-c1 x x-last\"\u003efailover\u003c/span\u003e,","displayNoNewLineWarning":false,"position":5,"left":1433,"right":1433},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1434,"text":" \t\t\t\t\t CRS_USE_SNAPSHOT, origin_startpos);","html":" \t\t\t\t\t \u003cspan class=pl-c1\u003eCRS_USE_SNAPSHOT\u003c/span\u003e, \u003cspan class=pl-s1\u003eorigin_startpos\u003c/span\u003e);","displayNoNewLineWarning":false,"position":6,"left":1434,"right":1434},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1435,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":7,"left":1435,"right":1435},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":1436,"text":" \t/*","html":" \t\u003cspan class=pl-c\u003e/*\u003c/span\u003e","displayNoNewLineWarning":false,"position":8,"left":1436,"right":1436}],"diffNumber":7,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":1773,"linesChanged":2,"newTreeEntry":{"lineCount":1773,"path":"src/backend/replication/logical/tablesync.c","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"src/backend/replication/logical/tablesync.c","mode":100644},"linesAdded":1,"linesDeleted":1,"path":"src/backend/replication/logical/tablesync.c","pathDigest":"15665086f16432380d0d5db99cf5f57be7a7680bbdf01b762c0bf2ee20fe4050","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"diffLines":[{"stylingDirective":null,"type":"HUNK","blobLineNumber":131,"text":"@@ -132,6 +132,13 @@","html":"@@ -132,6 +132,13 @@","displayNoNewLineWarning":false,"position":0,"left":131,"right":131},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":132,"text":" * avoid such deadlocks, we generate a unique GID (consisting of the","html":" \u003cspan class=pl-c\u003e * avoid such deadlocks, we generate a unique GID (consisting of the\u003c/span\u003e","displayNoNewLineWarning":false,"position":1,"left":132,"right":132},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":133,"text":" * subscription oid and the xid of the prepared transaction) for each prepare","html":" \u003cspan class=pl-c\u003e * subscription oid and the xid of the prepared transaction) for each prepare\u003c/span\u003e","displayNoNewLineWarning":false,"position":2,"left":133,"right":133},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":134,"text":" * transaction on the subscriber.","html":" \u003cspan class=pl-c\u003e * transaction on the subscriber.\u003c/span\u003e","displayNoNewLineWarning":false,"position":3,"left":134,"right":134},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":135,"text":"+ *","html":"+\u003cspan class=pl-c\u003e *\u003c/span\u003e","displayNoNewLineWarning":false,"position":4,"left":134,"right":135},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":136,"text":"+ * FAILOVER","html":"+\u003cspan class=pl-c\u003e * FAILOVER\u003c/span\u003e","displayNoNewLineWarning":false,"position":5,"left":134,"right":136},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":137,"text":"+ * ----------------------","html":"+\u003cspan class=pl-c\u003e * ----------------------\u003c/span\u003e","displayNoNewLineWarning":false,"position":6,"left":134,"right":137},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":138,"text":"+ * The logical slot on the primary can be synced to the standby by specifying","html":"+\u003cspan class=pl-c\u003e * The logical slot on the primary can be synced to the standby by specifying\u003c/span\u003e","displayNoNewLineWarning":false,"position":7,"left":134,"right":138},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":139,"text":"+ * failover = true when creating the subscription. Enabling failover allows us","html":"+\u003cspan class=pl-c\u003e * failover = true when creating the subscription. Enabling failover allows us\u003c/span\u003e","displayNoNewLineWarning":false,"position":8,"left":134,"right":139},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":140,"text":"+ * to smoothly transition to the promoted standby, ensuring that we can","html":"+\u003cspan class=pl-c\u003e * to smoothly transition to the promoted standby, ensuring that we can\u003c/span\u003e","displayNoNewLineWarning":false,"position":9,"left":134,"right":140},{"stylingDirective":null,"type":"ADDITION","blobLineNumber":141,"text":"+ * subscribe to the new primary without losing any data.","html":"+\u003cspan class=pl-c\u003e * subscribe to the new primary without losing any data.\u003c/span\u003e","displayNoNewLineWarning":false,"position":10,"left":134,"right":141},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":142,"text":" *-------------------------------------------------------------------------","html":" \u003cspan class=pl-c\u003e *-------------------------------------------------------------------------\u003c/span\u003e","displayNoNewLineWarning":false,"position":11,"left":135,"right":142},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":143,"text":" */","html":" \u003cspan class=pl-c\u003e */\u003c/span\u003e","displayNoNewLineWarning":false,"position":12,"left":136,"right":143},{"stylingDirective":null,"type":"CONTEXT","blobLineNumber":144,"text":" ","html":"\u003cbr\u003e","displayNoNewLineWarning":false,"position":13,"left":137,"right":144}],"diffNumber":8,"diffSize":"0 Bytes","isBinary":false,"isTooBig":false,"collapsed":false,"isSubmodule":false,"lineCount":5115,"linesChanged":7,"newTreeEntry":{"lineCount":5115,"path":"src/backend/replication/logical/worker.c","mode":100644,"isGenerated":false},"oldTreeEntry":{"lineCount":0,"path":"src/backend/replication/logical/worker.c","mode":100644},"linesAdded":7,"linesDeleted":0,"path":"src/backend/replication/logical/worker.c","pathDigest":"af701555908f15c000def6806ba8aedfee1a8524a5481e3b46421641ee1c9284","status":"MODIFIED","truncatedReason":null,"oldOid":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","newOid":"776621a5e4796fa214b6b29a7ca134f6c138572a","copilotChatReference":null,"deletedSha":"b527ebc1d37aa82b771dc9c76111bed1bce35a05","canToggleRichDiff":false,"defaultToRichDiff":false,"proseDifffHtml":null,"renderInfo":null,"dependencyDiffPath":null,"submodule":null},{"path":"src/bin/pg_dump/pg_dump.c","pathDigest":"36e3806266f5e832b422f878e1d7fef4ebeea2143b1733ea3fa2f90a99bad5c5","status":"MODIFIED"},{"path":"src/bin/pg_dump/pg_dump.h","pathDigest":"470e1ed6b3775d53b5e971a7bc2640c55b20d405b66c114f28b49b392a7850ed","status":"MODIFIED"},{"path":"src/bin/pg_upgrade/t/003_logical_slots.pl","pathDigest":"501ce852b1845d26c97bae151b9c31b6e2c9b29296e3f6b90921a94c68bd654b","status":"MODIFIED"},{"path":"src/bin/pg_upgrade/t/004_subscription.pl","pathDigest":"865c92c8d69ec568ebc35d501921e1180f6519ff138255e56b933140ed8bef2d","status":"MODIFIED"},{"path":"src/bin/psql/describe.c","pathDigest":"cdb325f8994210a4cfacc19525f11e9b368a3f78641b67105c105449df9b645c","status":"MODIFIED"},{"path":"src/bin/psql/tab-complete.c","pathDigest":"fd3f88d2c4e1a8b7f2fa9476e4b4d235ab39d5712efddeb7142e5832dd1eeb9b","status":"MODIFIED"},{"path":"src/include/catalog/catversion.h","pathDigest":"ee3a5187a356cefc95d2bd7330e9f5de9f7606e872b36b834d9c03f0b6cb4e32","status":"MODIFIED"},{"path":"src/include/catalog/pg_subscription.h","pathDigest":"ca28e8727457e16212c7a54f8c4a7e2864767a4b81200b48636ef4d38d9143ec","status":"MODIFIED"},{"path":"src/test/recovery/meson.build","pathDigest":"1ebeac4359509fcbcad180d84f29619eacd07d68fb67803835e60585e6b54f51","status":"MODIFIED"},{"path":"src/test/recovery/t/040_standby_failover_slots_sync.pl","pathDigest":"6e6aafba00450d86da4efbd6db43769a0806ae8a3518257180ec9e5c74bf6667","status":"ADDED"},{"path":"src/test/regress/expected/subscription.out","pathDigest":"e5ad859f30abeabd994f0d2f3235a80a60786955d1f099f579e433d0e7ab2248","status":"MODIFIED"},{"path":"src/test/regress/sql/subscription.sql","pathDigest":"288e8af2db8157073d2f489111ba8804457605cd0d6dbb439ba3f37fd11093fe","status":"MODIFIED"}],"splitViewPreference":"unified","ignoreWhitespace":false,"repoOwnerGlobalRelayId":"MDEyOk9yZ2FuaXphdGlvbjE3NzU0Mw==","commentsPreference":"visible","diffLineSpacingPreference":"relaxed","useMonospaceFont":false,"pasteUrlLinkAsPlainText":false,"userNotices":[],"path":"/postgres/postgres/commit/776621a5e4796fa214b6b29a7ca134f6c138572a","fileTreeExpanded":true,"headerInfo":{"additions":412,"deletions":108,"filesChanged":21,"filesChangedString":"21"},"moreDiffsToLoad":true,"asyncDiffLoadInfo":{"startIndex":9,"truncated":false,"byteCount":15554,"lineShownCount":353},"commentInfo":{"canComment":false,"locked":false,"canLock":false,"repoArchived":false},"csrf_tokens":{"/users/diffview?diff=split":{"post":"8GhP0Yql24daWEtDvVjYxzfz5Th9fIL0sKf8z-355Cfg4rdj8U6Tl1KAKQNoYSToSsYaQvox0J1uslAcMiF1qA"},"/users/diffview?diff=unified":{"post":"Y6QUExQJDAPebkrx7N5JRkekTKVuN7YLmXssXXmB2dNzLuyhb-JEE9a2KLE557VpOpGz3-l65GJHboCOpllIXA"},"/notifications/thread":{"post":"FGy2E_z4uZK-YwNJy50JSkC8G46LY8oj-8WveYro6ibZlFU0u_a2wyWTPsUwsBziAIRu7dCzcA1WydiIeB1NcA"}}},"title":"Add a failover option to subscriptions. · postgres/postgres@776621a","appPayload":{"helpUrl":"https://docs.github.com","findInDiffWorkerPath":"/assets-cdn/worker/find-in-diff-worker-f6b2312e7da9.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}}}
This commit introduces a new subscription option named 'failover', which
provides users with the ability to set the failover property of the
replication slot on the publisher when creating or altering a
subscription.
This uses the replication commands introduced by commit 7329240 to
enable the failover option for a logical replication slot.
If the failover option is set to true, the associated replication slots
(i.e. the main slot and the table sync slots) in the upstream database are
enabled to be synchronized to the standbys. Note that the capability to
sync the replication slots will be added in subsequent commits.
Thanks to Masahiko Sawada for the design inputs.
Author: Shveta Malik, Hou Zhijie, Ajin Cherian
Reviewed-by: Peter Smith, Bertrand Drouvot, Dilip Kumar, Masahiko Sawada, Nisha Moond, Kuroda Hayato, Amit Kapila
Discussion: https://postgr.es/m/514f6f2f-6833-4539-39f1-96cd1e011f23@enterprisedb.com
0 commit comments