From 091282fc5aa1cd893869dc733c196dc9948b57ef Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Fri, 25 Feb 2022 15:46:15 +0800 Subject: [PATCH] add index test UT --- source/libs/index/src/index_util.c | 5 +++++ source/libs/index/test/utilUT.cc | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/source/libs/index/src/index_util.c b/source/libs/index/src/index_util.c index ecf5e6d36c..fcaab968c2 100644 --- a/source/libs/index/src/index_util.c +++ b/source/libs/index/src/index_util.c @@ -72,6 +72,11 @@ void iUnion(SArray *inters, SArray *final) { if (sz <= 0) { return; } + if (sz == 1) { + taosArrayAddAll(final, taosArrayGetP(inters, 0)); + return; + } + MergeIndex *mi = calloc(sz, sizeof(MergeIndex)); for (int i = 0; i < sz; i++) { SArray *t = taosArrayGetP(inters, i); diff --git a/source/libs/index/test/utilUT.cc b/source/libs/index/test/utilUT.cc index 8954978344..ffa4ead774 100644 --- a/source/libs/index/test/utilUT.cc +++ b/source/libs/index/test/utilUT.cc @@ -201,3 +201,27 @@ TEST_F(UtilEnv, 03union) { iUnion(src, rslt); assert(taosArrayGetSize(rslt) == 9); } +TEST_F(UtilEnv, 04union) { + clearSourceArray(src); + clearFinalArray(rslt); + + uint64_t arr1[] = {1, 4, 5, 6}; + SArray * f = (SArray *)taosArrayGetP(src, 0); + for (int i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++) { + taosArrayPush(f, &arr1[i]); + } + + uint64_t arr2[] = {7, 8, 10}; + f = (SArray *)taosArrayGetP(src, 1); + for (int i = 0; i < sizeof(arr2) / sizeof(arr2[0]); i++) { + taosArrayPush(f, &arr2[i]); + } + + uint64_t arr3[] = {20, 21, 30, 100}; + f = (SArray *)taosArrayGetP(src, 2); + for (int i = 0; i < sizeof(arr3) / sizeof(arr3[0]); i++) { + taosArrayPush(f, &arr3[i]); + } + iUnion(src, rslt); + assert(taosArrayGetSize(rslt) == 11); +} -- GitLab