diff --git a/source/dnode/vnode/src/tsdb/tsdbRead.c b/source/dnode/vnode/src/tsdb/tsdbRead.c index b9ef72edc5..f0aa4d2ac6 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead.c @@ -2077,10 +2077,10 @@ static void doMergeTwoLevelData(STsdbReadHandle* pTsdbReadHandle, STableCheckInf #endif if (TD_SUPPORT_UPDATE(pCfg->update)) { if (lastKeyAppend != key) { - lastKeyAppend = key; if (lastKeyAppend != TSKEY_INITIAL_VAL) { ++curRow; } + lastKeyAppend = key; } // load data from file firstly numOfRows = doCopyRowsFromFileBlock(pTsdbReadHandle, pTsdbReadHandle->outputCapacity, curRow, pos, pos); diff --git a/tests/script/tsim/insert/update0.sim b/tests/script/tsim/insert/update0.sim index c34a08c79d..89eecaf860 100644 --- a/tests/script/tsim/insert/update0.sim +++ b/tests/script/tsim/insert/update0.sim @@ -35,7 +35,7 @@ sql insert into ct1 values('2022-05-03 16:59:00.016', 18); sql insert into ct1 values('2022-05-03 16:59:00.021', 21); sql insert into ct1 values('2022-05-03 16:59:00.022', 22); -print =============== step3-1 query records from ct1 from memory +print =============== step3-1 query records of ct1 from memory sql select * from ct1; print $data00 $data01 print $data10 $data11 @@ -69,7 +69,7 @@ sql insert into ct2 values('2022-03-02 16:59:00.010', 1),('2022-03-02 16:59:00.0 sql insert into ct2 values('2022-03-02 16:59:00.010', 3),('2022-03-02 16:59:00.010',33),('2022-04-01 16:59:00.011',4),('2022-04-01 16:59:00.011',6),('2022-03-06 16:59:00.013',8); sql insert into ct2 values('2022-03-02 16:59:00.010', 103),('2022-03-02 16:59:00.010',303),('2022-04-01 16:59:00.011',40),('2022-04-01 16:59:00.011',60),('2022-03-06 16:59:00.013',80); -print =============== step3-1 query records from ct2 from memory +print =============== step3-1 query records of ct2 from memory sql select * from ct2; print $data00 $data01 print $data10 $data11 @@ -99,7 +99,7 @@ endi system sh/exec.sh -n dnode1 -s stop -x SIGINT system sh/exec.sh -n dnode1 -s start -print =============== step3-2 query records from ct1 from file +print =============== step3-2 query records of ct1 from file sql select * from ct1; print $data00 $data01 print $data10 $data11 @@ -128,7 +128,7 @@ if $data51 != 22 then return -1 endi -print =============== step3-2 query records from ct2 from file +print =============== step3-2 query records of ct2 from file sql select * from ct2; print $data00 $data01 print $data10 $data11 @@ -152,4 +152,79 @@ endi if $data21 != 40 then print data21 $data21 != 40 return -1 +endi + +print =============== step3-3 query records of ct1 from memory and file(merge) +sql insert into ct1 values('2022-05-03 16:59:00.010', 100); +sql insert into ct1 values('2022-05-03 16:59:00.022', 200); +sql insert into ct1 values('2022-05-03 16:59:00.016', 160); + +sql select * from ct1; +print $data00 $data01 +print $data10 $data11 +print $data20 $data21 +print $data30 $data31 +print $data40 $data41 +print $data50 $data51 + +if $rows != 6 then + print rows $rows != 6 + return -1 +endi + +if $data01 != 100 then + print data01 $data01 != 100 + return -1 +endi + +if $data21 != 160 then + print data21 $data21 != 160 + return -1 +endi + +if $data51 != 200 then + print data51 $data51 != 200 + return -1 +endi + +print =============== step3-3 query records of ct2 from memory and file(merge) +sql insert into ct2(ts) values('2022-04-02 16:59:00.016'); +sql insert into ct2 values('2022-03-06 16:59:00.013', NULL); +sql insert into ct2 values('2022-03-01 16:59:00.016', 10); +sql insert into ct2(ts) values('2022-04-01 16:59:00.011'); +sql select * from ct2; +print $data00 $data01 +print $data10 $data11 +print $data20 $data21 +print $data30 $data31 +print $data40 $data41 + +if $rows != 5 then + print rows $rows != 5 + return -1 +endi + +if $data01 != 10 then + print data01 $data01 != 10 + return -1 +endi + +if $data11 != 103 then + print data11 $data11 != 103 + return -1 +endi + +if $data21 != NULL then + print data21 $data21 != NULL + return -1 +endi + +if $data31 != 40 then + print data31 $data31 != 40 + return -1 +endi + +if $data41 != NULL then + print data41 $data41 != NULL + return -1 endi \ No newline at end of file