diff --git a/tests/script/fullGeneralSuite.sim b/tests/script/fullGeneralSuite.sim index e2ab5e6ffcd9dd499fda37ac3433023d85d4a446..16abdc9d6ff48c28d7536ce004d5c9b36fb8bc8a 100644 --- a/tests/script/fullGeneralSuite.sim +++ b/tests/script/fullGeneralSuite.sim @@ -91,6 +91,7 @@ run general/import/large.sim run general/import/replica1.sim run general/insert/basic.sim run general/insert/insert_drop.sim +run general/insert/insert_update2.sim run general/insert/query_block1_memory.sim run general/insert/query_block2_memory.sim run general/insert/query_block1_file.sim diff --git a/tests/script/general/insert/insert_update2.sim b/tests/script/general/insert/insert_update2.sim new file mode 100644 index 0000000000000000000000000000000000000000..523ff2d525dfbc714638577f0515644e6b8c5d07 --- /dev/null +++ b/tests/script/general/insert/insert_update2.sim @@ -0,0 +1,218 @@ +system sh/stop_dnodes.sh + +system sh/deploy.sh -n dnode1 -i 1 +system sh/cfg.sh -n dnode1 -c walLevel -v 1 +system sh/exec.sh -n dnode1 -s start + +sleep 2000 +sql connect + +### 4096*0.8 - 1 = 3275 +$rowSuperBlk = 3275 +### 4096 - 3275 -1 - 1 = 819 +$rowSubBlk = 819 +$ts0 = 1672372800000 +$ts1 = 1672372900000 +$ts2 = 1672686800000 + +$i = 0 +$db = db0 +$stb1 = stb1 +$tb1 = tb1 +$stb2 = stb2 +$tb2 = tb2 + +print ====== create database +sql drop database if exists $db +sql create database $db update 2 keep 1000 days 10 +print ====== create tables +sql use $db +sql create table $stb1 (ts timestamp, c1 bigint, c2 bigint, c3 bigint) tags(t1 int) +sql create table $stb2 (ts timestamp, c1 bigint, c2 bigint, c3 bigint, c4 bigint, c5 bigint, c6 bigint, c7 bigint, c8 bigint, c9 bigint, c10 bigint, c11 bigint, c12 bigint, c13 bigint, c14 bigint, c15 bigint, c16 bigint, c17 bigint, c18 bigint, c19 bigint, c20 bigint, c21 bigint, c22 bigint, c23 bigint, c24 bigint, c25 bigint, c26 bigint, c27 bigint, c28 bigint, c29 bigint, c30 bigint) tags(t1 int) +sql create table $tb1 using $stb1 tags(1) +sql create table $tb2 using $stb2 tags(2) +print ====== tables created + + +print ========== step 1: merge dataRow in mem + +$i = 0 +while $i < $rowSuperBlk + $xs = $i * 10 + $ts = $ts2 + $xs + sql insert into $tb1 (ts,c1) values ( $ts , $i ) + $i = $i + 1 +endw + +sql insert into $tb1 values ( $ts0 , 1,NULL,0) +sql insert into $tb1 values ( $ts0 , NULL,1,1) + +sql select * from $tb1 where ts = $ts0 +if $rows != 1 then + return -1 +endi +if $data01 != 1 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data03 != 1 then + return -1 +endi + +print ========== step 2: merge kvRow in mem +$i = 0 +while $i < $rowSuperBlk + $xs = $i * 10 + $ts = $ts2 + $xs + sql insert into $tb2 (ts,c1) values ( $ts , $i ) + $i = $i + 1 +endw + +sql insert into $tb2 (ts,c3,c8,c10) values ( $ts0 , 1,NULL,0) +sql insert into $tb2 (ts,c3,c8,c10) values ( $ts0 , NULL,1,1) + +sql select ts,c1,c3,c8,c10 from $tb2 where ts = $ts0 +if $rows != 1 then + return -1 +endi +if $data01 != NULL then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data03 != 1 then + return -1 +endi +if $data04 != 1 then + return -1 +endi + +print ================== restart server to commit data into disk +system sh/exec.sh -n dnode1 -s stop -x SIGINT +sleep 2000 +system sh/exec.sh -n dnode1 -s start +print ================== server restart completed +sleep 2000 + +print ========== step 3: merge dataRow in file +sql insert into $tb1 values ( $ts0 , 2,NULL,NULL) +print ========== step 4: merge kvRow in file +sql insert into $tb2 (ts,c3,c8,c10) values ( $ts0 , 2,NULL,NULL) + +print ================== restart server to commit data into disk +system sh/exec.sh -n dnode1 -s stop -x SIGINT +sleep 2000 +system sh/exec.sh -n dnode1 -s start +print ================== server restart completed +sleep 2000 + +sql select * from $tb1 where ts = $ts0 +if $rows != 1 then + return -1 +endi +if $data01 != 2 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data03 != 1 then + return -1 +endi + +sql select ts,c1,c3,c8,c10 from $tb2 where ts = $ts0 +if $rows != 1 then + return -1 +endi +if $data01 != NULL then + return -1 +endi +if $data02 != 2 then + return -1 +endi +if $data03 != 1 then + return -1 +endi +if $data04 != 1 then + return -1 +endi + + +print ========== step 5: merge dataRow in file/mem +$i = 0 +while $i < $rowSubBlk + $xs = $i * 1 + $ts = $ts1 + $xs + sql insert into $tb1 (ts,c1) values ( $ts , $i ) + $i = $i + 1 +endw +print ========== step 6: merge kvRow in file/mem +$i = 0 +while $i < $rowSubBlk + $xs = $i * 1 + $ts = $ts1 + $xs + sql insert into $tb2 (ts,c1) values ( $ts , $i ) + $i = $i + 1 +endw + +print ================== restart server to commit data into disk +system sh/exec.sh -n dnode1 -s stop -x SIGINT +sleep 2000 +system sh/exec.sh -n dnode1 -s start +print ================== server restart completed +sleep 2000 + +sql insert into $tb1 values ( $ts0 , NULL,NULL,3) +sql insert into $tb2 (ts,c3,c8) values ( $ts0 , 3,NULL) +$tsN = $ts0 + 1 +sql insert into $tb1 values ( $tsN , 1,NULL,0) +sql insert into $tb2 (ts,c3,c8) values ( $tsN , 100,200) +$tsN = $ts0 + 2 +sql insert into $tb1 values ( $tsN , 1,NULL,0) +sql insert into $tb2 (ts,c3,c8) values ( $tsN , 100,200) + +print ================== restart server to commit data into disk +system sh/exec.sh -n dnode1 -s stop -x SIGINT +sleep 2000 +system sh/exec.sh -n dnode1 -s start +print ================== server restart completed +sleep 2000 + + +sql select * from $tb1 where ts = $ts0 +if $rows != 1 then + return -1 +endi +if $data01 != 2 then + return -1 +endi +if $data02 != 1 then + return -1 +endi +if $data03 != 3 then + return -1 +endi + +sql select ts,c1,c3,c8,c10 from $tb2 where ts = $ts0 +if $rows != 1 then + return -1 +endi +if $data01 != NULL then + return -1 +endi +if $data02 != 3 then + return -1 +endi +if $data03 != 1 then + return -1 +endi + +### this check for fix TS-2306 +if $data04 != 1 then + return -1 +endi + +system sh/exec.sh -n dnode1 -s stop -x SIGINT \ No newline at end of file diff --git a/tests/script/jenkins/basic.txt b/tests/script/jenkins/basic.txt index 56c24e6444e57f18654458cdcd27902f45ac59e3..b2c001c83b2340b1a4bf523fb2036cae6364e5f6 100644 --- a/tests/script/jenkins/basic.txt +++ b/tests/script/jenkins/basic.txt @@ -25,6 +25,7 @@ cd ../../../debug; make # ./test.sh -f general/http/grafana.sim ./test.sh -f general/insert/basic.sim ./test.sh -f general/insert/insert_drop.sim +./test.sh -f general/insert/insert_update2.sim ./test.sh -f general/insert/query_block1_memory.sim ./test.sh -f general/insert/query_block2_memory.sim ./test.sh -f general/insert/query_block1_file.sim diff --git a/tests/script/jenkins/simple.txt b/tests/script/jenkins/simple.txt index a0a2f5191768b70638aa45fa9ad97f73c91d4d86..ec5a1e57346ffb3df2b21156db00d1390d24d459 100644 --- a/tests/script/jenkins/simple.txt +++ b/tests/script/jenkins/simple.txt @@ -92,6 +92,7 @@ cd ../../../debug; make ./test.sh -f general/insert/basic.sim ./test.sh -f general/insert/insert_drop.sim +./test.sh -f general/insert/insert_update2.sim ./test.sh -f general/insert/query_block1_memory.sim ./test.sh -f general/insert/query_block2_memory.sim ./test.sh -f general/insert/query_block1_file.sim diff --git a/tests/script/jenkins/wbasic.txt b/tests/script/jenkins/wbasic.txt index 22fee77344371a634086ebf2a37a9bf5b03a7f6b..8fbdbe4ae01e7e5513eda26b07b8603e9648aa11 100644 --- a/tests/script/jenkins/wbasic.txt +++ b/tests/script/jenkins/wbasic.txt @@ -98,6 +98,7 @@ wtest.bat -f general/import/replica1.sim wtest.bat -f general/insert/basic.sim wtest.bat -f general/insert/insert_drop.sim +wtest.bat -f general/insert/insert_update2.sim wtest.bat -f general/insert/query_block1_memory.sim wtest.bat -f general/insert/query_block2_memory.sim wtest.bat -f general/insert/query_block1_file.sim diff --git a/tests/script/regressionSuite.sim b/tests/script/regressionSuite.sim index 528dbbe04044ba4007d00edd68f31286f32ee889..1a9860168a099684cab04bfeb79e27f20c4e2ceb 100644 --- a/tests/script/regressionSuite.sim +++ b/tests/script/regressionSuite.sim @@ -91,6 +91,7 @@ run general/import/large.sim run general/import/replica1.sim run general/insert/basic.sim run general/insert/insert_drop.sim +run general/insert/insert_update2.sim run general/insert/query_block1_memory.sim run general/insert/query_block2_memory.sim run general/insert/query_block1_file.sim