On Tue, Jun 1, 2021 at 12:29 PM tanghy.f...@fujitsu.com
<tanghy.f...@fujitsu.com> wrote:
>
> Hi
>
>
>
> I have some questions with your patch. Here are two cases I used to check the 
> bug.
>
>
>
> Case1(PK toasted_key is short), data could be synchronized on HEAD.
>
> ---------------
>
> INSERT INTO toasted_key(toasted_key, toasted_col1) VALUES('111', 
> repeat('9876543210', 200));
>
> UPDATE toasted_key SET toasted_col2 = toasted_col1;
>
> ---------------
>
>
>
> Case2(PK toasted_key is very long), data couldn’t be synchronized on 
> HEAD.(which is the bug)
>
> ---------------
>
> INSERT INTO toasted_key(toasted_key, toasted_col1) 
> VALUES(repeat('9876543210', 200), '111');
>
> UPDATE toasted_key SET toasted_col2 = toasted_col1;
>
> ---------------
>
>
>
> So I think the bug is only related with the length of primary key.
>
> I noticed that in case1, ExtractReplicaIdentity function returned NULL on 
> HEAD. But after your fix, it didn’t return NULL. There is no problem with 
> this case on HEAD, but the patch modified its return value. I’m not sure if 
> it would bring new problems. Have you checked it?

Good observation, basically, my check says that any field in the tuple
is toasted then prepare the key tuple, actually, after that, I should
recheck whether the key field specifically toasted or not and if it is
not then we can continue returning NULL.  I will fix this in the next
version.

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com


Reply via email to