RE: [BUG]Update Toast data failure in logical replication - Mailing list pgsql-hackers

From tanghy.fnst@fujitsu.com
Subject RE: [BUG]Update Toast data failure in logical replication
Date
Msg-id OS0PR01MB6113DE0DE33A59A5240A9B6FFB3D9@OS0PR01MB6113.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Re: [BUG]Update Toast data failure in logical replication  (Dilip Kumar <dilipbalaut@gmail.com>)
Responses Re: [BUG]Update Toast data failure in logical replication
List pgsql-hackers
On Wed, Jun 2, 2021 2:44 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: 
> Attached patch fixes that, I haven't yet added the test case.  Once
> someone confirms on the approach then I will add a test case to the
> patch.

    key_tuple = heap_form_tuple(desc, values, nulls);
    *copy = true;
...
        key_tuple = toast_flatten_tuple(oldtup, desc);
         heap_freetuple(oldtup);
     }
+    /*
+     * If key tuple doesn't have any external data and key is not changed then
+     * just free the key tuple and return NULL.
+     */
+    else if (!key_changed)
+    {
+        heap_freetuple(key_tuple);
+        return NULL;
+    }
 
     return key_tuple;
 }

I think "*copy = false" should be added before return NULL because we don't return a modified copy tuple here.
Thoughts?

Regards
Tang 


pgsql-hackers by date:

Previous
From: Amit Langote
Date:
Subject: Re: join pushdown and issue with foreign update
Next
From: "houzj.fnst@fujitsu.com"
Date:
Subject: RE: Parallel INSERT SELECT take 2