[regression-test](merge-on-write) Fix partial update concurrency conflict case (#25212)

This commit is contained in:
bobhan1
2023-10-11 10:17:01 +08:00
committed by GitHub
parent d4673ce28a
commit 1fa8720164
5 changed files with 45 additions and 19 deletions

View File

@ -0,0 +1,5 @@
1,"ddddddddddd"
2,"eeeeee"
3,"aaaaa"
4,"bbbbbbbb"
5,"cccccccccccc"
1 1 ddddddddddd
2 2 eeeeee
3 3 aaaaa
4 4 bbbbbbbb
5 5 cccccccccccc

View File

@ -0,0 +1,5 @@
1,1111,199
2,2222,299
3,3333,399
4,4444,499
5,5555,599
1 1 1111 199
2 2 2222 299
3 3 3333 399
4 4 4444 499
5 5 5555 599

View File

@ -0,0 +1,5 @@
1,10
2,20
3,30
4,40
5,50
1 1 10
2 2 20
3 3 30
4 4 40
5 5 50

View File

@ -0,0 +1,8 @@
-- This file is automatically generated. You should know what you did if you want to edit this
-- !sql --
1 "ddddddddddd" 1111 199 10
2 "eeeeee" 2222 299 20
3 "aaaaa" 3333 399 30
4 "bbbbbbbb" 4444 499 40
5 "cccccccccccc" 5555 599 50

View File

@ -31,61 +31,64 @@ suite("test_primary_key_partial_update_parallel", "p0") {
UNIQUE KEY(`id`) DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true")
"""
// insert 2 lines
sql """
insert into ${tableName} values(2, "doris2", 2000, 223, 1)
"""
sql """
insert into ${tableName} values(1, "doris", 1000, 123, 1)
"""
sql """insert into ${tableName} values
(2, "doris2", 2000, 223, 2),
(1, "doris", 1000, 123, 1),
(5, "doris5", 5000, 523, 5),
(4, "doris4", 4000, 423, 4),
(3, "doris3", 3000, 323, 3);"""
Thread.startDaemon {
t1 = Thread.startDaemon {
streamLoad {
table "${tableName}"
set 'column_separator', ','
set 'format', 'csv'
set 'partial_columns', 'true'
set 'columns', 'id,score'
set 'columns', 'id,name'
file 'basic.csv'
file 'partial_update_parallel1.csv'
time 10000 // limit inflight 10s
}
}
Thread.startDaemon {
t2 = Thread.startDaemon {
streamLoad {
table "${tableName}"
set 'column_separator', ','
set 'format', 'csv'
set 'partial_columns', 'true'
set 'columns', 'id,score'
set 'columns', 'id,score,test'
file 'basic_with_duplicate.csv'
file 'partial_update_parallel2.csv'
time 10000 // limit inflight 10s
}
}
Thread.startDaemon {
t3 = Thread.startDaemon {
streamLoad {
table "${tableName}"
set 'column_separator', ','
set 'format', 'csv'
set 'partial_columns', 'true'
set 'columns', 'id,score'
set 'columns', 'id,dft'
file 'basic_with_duplicate2.csv'
file 'partial_update_parallel3.csv'
time 10000 // limit inflight 10s
}
}
t1.join()
t2.join()
t3.join()
sql "sync"
sql """
select * from ${tableName} order by id;
"""
qt_sql """ select * from ${tableName} order by id;"""
sql """ DROP TABLE IF EXISTS ${tableName}; """
}