[
https://issues.apache.org/jira/browse/KUDU-3495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17760063#comment-17760063
]
ASF subversion and git services commented on KUDU-3495:
-------------------------------------------------------
Commit f1f3c907fc6f012b6d7a72f0103e1db4f56f0e7d in kudu's branch
refs/heads/master from 宋家成
[ https://gitbox.apache.org/repos/asf?p=kudu.git;h=f1f3c907f ]
KUDU-3495 Initialize the bitmap while decoding insert/upsert
The upsert request with an old client schema might lead to
unexpected result eventually.
If client A opens a table first and then client B add a column
to the table, the upsert request of client A might set the
newly added column to default value.
The reason is that we did not initialize the tablet_isset_bitmap
while decoding the insert or upsert requests.
A user does not want to change the column which he did not request
to even if the client schema is not correct, so initialize the bitmap.
Change-Id: I38a33cb58a085bc83854c5145e904c8ed51092a8
Reviewed-on: http://gerrit.cloudera.org:8080/20327
Tested-by: Kudu Jenkins
Reviewed-by: Alexey Serbin <[email protected]>
> TServer: Unexpected result of write with old schema.
> ----------------------------------------------------
>
> Key: KUDU-3495
> URL: https://issues.apache.org/jira/browse/KUDU-3495
> Project: Kudu
> Issue Type: Bug
> Components: tserver
> Affects Versions: 1.14.0
> Reporter: Song Jiacheng
> Priority: Major
> Attachments: image-2023-07-25-18-54-29-354.png,
> image-2023-07-25-18-56-27-790.png
>
>
> For table test with two column a(primary key), b.
> If I do following operations in client side:
> # openTable(test) to get a kudu table object KuduTable1 whose schema is (a,
> b)
> # Add a column c to table test.
> # openTable(test) to get another kudu table object KuduTable2 whose schema
> is (a, b, c)
> # Insert 1 row ("d", "e", "f") using KuduTable2
> # Upsert 1 row ("d", "g") using KuduTable1
> The expected result is ("d", "g", "f") since I hope to keep the value of
> column c.
> But the result i got was ("d", "g", NULL)
> After looking through the code, I think the original reason is that the
> isset_bitmap is not all 0 at start.
> !image-2023-07-25-18-54-29-354.png!
> So I initialize the bitmap like below: !image-2023-07-25-18-56-27-790.png!
> After this modification, the result is as my expect.
> So I wonder if it is a bug since normally a user does not want to change the
> column which he did not request to.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)