aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorAmit Kapila <akapila@postgresql.org>2022-02-14 08:55:58 +0530
committerAmit Kapila <akapila@postgresql.org>2022-02-14 08:55:58 +0530
commit5e01001ffb386aa6683fb65b918359f486625eb1 (patch)
tree7bb055c0eecf1b65fd5f9fc8ff26a01ba0d2b11b /doc/src
parent0052fb489008a68d0f3e0445f52e1ab3166632a4 (diff)
downloadpostgresql-5e01001ffb386aa6683fb65b918359f486625eb1.tar.gz
postgresql-5e01001ffb386aa6683fb65b918359f486625eb1.zip
WAL log unchanged toasted replica identity key attributes.
Currently, during UPDATE, the unchanged replica identity key attributes are not logged separately because they are getting logged as part of the new tuple. But if they are stored externally then the untoasted values are not getting logged as part of the new tuple and logical replication won't be able to replicate such UPDATEs. So we need to log such attributes as part of the old_key_tuple during UPDATE. Reported-by: Haiying Tang Author: Dilip Kumar and Amit Kapila Reviewed-by: Alvaro Herrera, Haiying Tang, Andres Freund Backpatch-through: 10 Discussion: https://postgr.es/m/OS0PR01MB611342D0A92D4F4BF26C0F47FB229@OS0PR01MB6113.jpnprd01.prod.outlook.com
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/ref/alter_table.sgml9
1 files changed, 5 insertions, 4 deletions
diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml
index dee026e3a08..5c0735e08a8 100644
--- a/doc/src/sgml/ref/alter_table.sgml
+++ b/doc/src/sgml/ref/alter_table.sgml
@@ -871,10 +871,11 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
<listitem>
<para>
This form changes the information which is written to the write-ahead log
- to identify rows which are updated or deleted. This option has no effect
- except when logical replication is in use.
- In all cases, no old values are logged unless at least one of the columns
- that would be logged differs between the old and new versions of the row.
+ to identify rows which are updated or deleted.
+ In most cases, the old value of each column is only logged if it differs
+ from the new value; however, if the old value is stored externally, it is
+ always logged regardless of whether it changed.
+ This option has no effect except when logical replication is in use.
<variablelist>
<varlistentry>
<term><literal>DEFAULT</literal></term>