From 4a516556a9f197e937d5647f64bba52020587790 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Tue, 30 Jan 2024 08:49:34 +0800 Subject: [PATCH] enh: add right asof join test cases --- source/libs/executor/test/joinTests.cpp | 2 +- tests/script/tsim/join/join.sim | 2 + tests/script/tsim/join/left_asof_join.sim | 6 - tests/script/tsim/join/right_asof_join.sim | 476 +++++++++++++++++++++ 4 files changed, 479 insertions(+), 7 deletions(-) create mode 100644 tests/script/tsim/join/right_asof_join.sim diff --git a/source/libs/executor/test/joinTests.cpp b/source/libs/executor/test/joinTests.cpp index a2b3134441..c147d05ed9 100755 --- a/source/libs/executor/test/joinTests.cpp +++ b/source/libs/executor/test/joinTests.cpp @@ -66,7 +66,7 @@ enum { }; #define COL_DISPLAY_WIDTH 18 -#define JT_MAX_LOOP 5000 +#define JT_MAX_LOOP 50000 #define LEFT_BLK_ID 0 #define RIGHT_BLK_ID 1 diff --git a/tests/script/tsim/join/join.sim b/tests/script/tsim/join/join.sim index ef5750a901..4eef250433 100644 --- a/tests/script/tsim/join/join.sim +++ b/tests/script/tsim/join/join.sim @@ -66,6 +66,7 @@ run tsim/join/right_semi_join.sim run tsim/join/left_anti_join.sim run tsim/join/right_anti_join.sim run tsim/join/left_asof_join.sim +run tsim/join/right_asof_join.sim print ================== restart server to commit data into disk system sh/exec.sh -n dnode1 -s stop -x SIGINT @@ -81,5 +82,6 @@ run tsim/join/right_semi_join.sim run tsim/join/left_anti_join.sim run tsim/join/right_anti_join.sim run tsim/join/left_asof_join.sim +run tsim/join/right_asof_join.sim system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/tsim/join/left_asof_join.sim b/tests/script/tsim/join/left_asof_join.sim index f23abdf07e..c6f69e77cc 100644 --- a/tests/script/tsim/join/left_asof_join.sim +++ b/tests/script/tsim/join/left_asof_join.sim @@ -17,15 +17,9 @@ endi if $data00 != 1 then return -1 endi -if $data01 != 1 then - return -1 -endi if $data10 != 2 then return -1 endi -if $data11 != 1 then - return -1 -endi sql select a.ts, b.ts from tba1 a left asof join tba2 b on a.ts = b.ts; if $rows != 4 then diff --git a/tests/script/tsim/join/right_asof_join.sim b/tests/script/tsim/join/right_asof_join.sim new file mode 100644 index 0000000000..0599fa1e53 --- /dev/null +++ b/tests/script/tsim/join/right_asof_join.sim @@ -0,0 +1,476 @@ +sql connect +sql use test0; + +sql_error select a.col1, b.col1 from sta a right asof join sta b on a.ts = b.ts and a.ts < '2023-11-17 16:29:02' and b.ts < '2023-11-17 16:29:01' order by a.col1, b.col1; +sql select a.col1, b.col1 from sta a right asof join sta b on a.ts = b.ts order by a.col1, b.col1; +if $rows != 8 then + return -1 +endi +sql select a.col1, b.col1 from sta a right asof join sta b on a.ts >= b.ts order by a.col1, b.col1; +if $rows != 8 then + return -1 +endi +sql select a.col1, b.col1 from sta a right asof join sta b on a.ts = b.ts where a.ts < '2023-11-17 16:29:02' and b.ts < '2023-11-17 16:29:01' order by b.col1; +if $rows != 2 then + return -1 +endi +if $data01 != 1 then + return -1 +endi +if $data11 != 2 then + return -1 +endi + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on a.ts = b.ts; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != NULL then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != NULL then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on b.ts = a.ts; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != NULL then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != NULL then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on a.ts >= b.ts ; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != NULL then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on b.ts <= a.ts ; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != NULL then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on a.ts > b.ts ; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:04.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != NULL then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on b.ts < a.ts ; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:04.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != NULL then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on a.ts <= b.ts ; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:04.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on b.ts >= a.ts ; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:04.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on a.ts < b.ts ; +if $rows != 4 then + return -1 +endi +if $data00 != NULL then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:04.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on b.ts > a.ts ; +if $rows != 4 then + return -1 +endi +if $data00 != NULL then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:04.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:05.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba2 a right asof join tba1 b on a.ts >= b.ts; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:05.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:04.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba2 a right asof join tba1 b on a.ts > b.ts; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:05.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:05.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:04.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba2 a right asof join tba1 b on a.ts <= b.ts; +if $rows != 4 then + return -1 +endi +if $data00 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:04.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba2 a right asof join tba1 b on a.ts < b.ts; +if $rows != 4 then + return -1 +endi +if $data00 != NULL then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:04.000@ then + return -1 +endi + +sql select a.ts, b.ts from tba1 a right asof join tba2 b on a.ts > b.ts jlimit 2 +if $rows != 6 then + return -1 +endi +if $data00 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data01 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data10 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data11 != @23-11-17 16:29:00.000@ then + return -1 +endi +if $data20 != @23-11-17 16:29:02.000@ then + return -1 +endi +if $data21 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data30 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data31 != @23-11-17 16:29:01.000@ then + return -1 +endi +if $data40 != @23-11-17 16:29:04.000@ then + return -1 +endi +if $data41 != @23-11-17 16:29:03.000@ then + return -1 +endi +if $data50 != NULL then + return -1 +endi +if $data51 != @23-11-17 16:29:05.000@ then + return -1 +endi + + + +