diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 25a78ed02aec54bee8c5c1efa7d46a340b3ca8d1..f324a832fa85ef75cc43caf18d4944424d62b9e5 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -1254,9 +1254,10 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) { if (pQueryInfo->tsBuf != NULL) { // note: here used the idx instead of actual vnode id. int32_t vgId = 0; - if (pTableMetaInfo->vgroupList != NULL) { + if (pTableMetaInfo->pVgroupTables != NULL) { int32_t vnodeIndex = pTableMetaInfo->vgroupIndex; - vgId = pTableMetaInfo->vgroupList->vgroups[vnodeIndex].vgId; + SVgroupTableInfo* pTableInfo = taosArrayGet(pTableMetaInfo->pVgroupTables, vnodeIndex); + vgId = pTableInfo->vgInfo.vgId; } else { vgId = query.vgId; } diff --git a/src/query/tests/CMakeLists.txt b/src/query/tests/CMakeLists.txt index 5143c0fdc161fcc29278d5f772ced1c2717de064..6f19d2b139423e7683bd6a5c9e58b25247a4c245 100644 --- a/src/query/tests/CMakeLists.txt +++ b/src/query/tests/CMakeLists.txt @@ -30,11 +30,11 @@ IF (HEADER_GTEST_INCLUDE_DIR AND (LIB_GTEST_STATIC_DIR OR LIB_GTEST_SHARED_DIR)) ENDIF() ENDIF() -SET_SOURCE_FILES_PROPERTIES(./astTest.cpp PROPERTIES COMPILE_FLAGS -w) -SET_SOURCE_FILES_PROPERTIES(./histogramTest.cpp PROPERTIES COMPILE_FLAGS -w) -SET_SOURCE_FILES_PROPERTIES(./percentileTest.cpp PROPERTIES COMPILE_FLAGS -w) -SET_SOURCE_FILES_PROPERTIES(./apercentileTest.cpp PROPERTIES COMPILE_FLAGS -w) -SET_SOURCE_FILES_PROPERTIES(./resultBufferTest.cpp PROPERTIES COMPILE_FLAGS -w) +#SET_SOURCE_FILES_PROPERTIES(./astTest.cpp PROPERTIES COMPILE_FLAGS -w) +#SET_SOURCE_FILES_PROPERTIES(./histogramTest.cpp PROPERTIES COMPILE_FLAGS -w) +#SET_SOURCE_FILES_PROPERTIES(./percentileTest.cpp PROPERTIES COMPILE_FLAGS -w) +#SET_SOURCE_FILES_PROPERTIES(./apercentileTest.cpp PROPERTIES COMPILE_FLAGS -w) +#SET_SOURCE_FILES_PROPERTIES(./resultBufferTest.cpp PROPERTIES COMPILE_FLAGS -w) SET_SOURCE_FILES_PROPERTIES(./tsBufTest.cpp PROPERTIES COMPILE_FLAGS -w) -SET_SOURCE_FILES_PROPERTIES(./unitTest.cpp PROPERTIES COMPILE_FLAGS -w) -SET_SOURCE_FILES_PROPERTIES(./rangeMergeTest.cpp PROPERTIES COMPILE_FLAGS -w) +#SET_SOURCE_FILES_PROPERTIES(./unitTest.cpp PROPERTIES COMPILE_FLAGS -w) +#SET_SOURCE_FILES_PROPERTIES(./rangeMergeTest.cpp PROPERTIES COMPILE_FLAGS -w) diff --git a/src/query/tests/apercentileTest.cpp b/src/query/tests/apercentileTest.cpp index 12450846f39788019c560e1f726af4ab21f236bd..246b0a4e09a7b430c9f5390bf2728f137a63a1c4 100644 --- a/src/query/tests/apercentileTest.cpp +++ b/src/query/tests/apercentileTest.cpp @@ -291,13 +291,13 @@ void tdigestTest() { for (int32_t j = 0; j < typeTimes; ++j) { printf("DMode:%d,Type:%d,randP:%d -", dataMode[i], dataTypes[j], randPers[p]); for (int32_t m = 0; m < numTimes; ++m) { - printf(" %d:%f", totalNum[m], useTime[0][i][j][m][p]); + printf(" %ld:%f", totalNum[m], useTime[0][i][j][m][p]); } printf("\n"); printf("HMode:%d,Type:%d,randP:%d -", dataMode[i], dataTypes[j], randPers[p]); for (int32_t m = 0; m < numTimes; ++m) { - printf(" %d:%f", totalNum[m], useTime[1][i][j][m][p]); + printf(" %ld:%f", totalNum[m], useTime[1][i][j][m][p]); } printf("\n"); } @@ -307,13 +307,13 @@ void tdigestTest() { for (int32_t j = 0; j < typeTimes; ++j) { printf("DMode:%d,Type:%d,randL:%d -", dataMode[i], dataTypes[j], randLimits[p]); for (int64_t m = 0; m < numTimes; ++m) { - printf(" %d:%f", totalNum[m], useTime[0][i][j][m][p]); + printf(" %ld:%f", totalNum[m], useTime[0][i][j][m][p]); } printf("\n"); printf("HMode:%d,Type:%d,randL:%d -", dataMode[i], dataTypes[j], randLimits[p]); for (int64_t m = 0; m < numTimes; ++m) { - printf(" %d:%f", totalNum[m], useTime[1][i][j][m][p]); + printf(" %ld:%f", totalNum[m], useTime[1][i][j][m][p]); } printf("\n"); } @@ -322,13 +322,13 @@ void tdigestTest() { for (int32_t j = 0; j < typeTimes; ++j) { printf("DMode:%d,Type:%d -", dataMode[i], dataTypes[j]); for (int64_t m = 0; m < numTimes; ++m) { - printf(" %d:%f", totalNum[m], useTime[0][i][j][m][0]); + printf(" %ld:%f", totalNum[m], useTime[0][i][j][m][0]); } printf("\n"); printf("HMode:%d,Type:%d -", dataMode[i], dataTypes[j]); for (int64_t m = 0; m < numTimes; ++m) { - printf(" %d:%f", totalNum[m], useTime[1][i][j][m][0]); + printf(" %ld:%f", totalNum[m], useTime[1][i][j][m][0]); } printf("\n"); } diff --git a/src/query/tests/histogramTest.cpp b/src/query/tests/histogramTest.cpp index 70c334631c39eed88913b58edf06d9d5520b6f2c..72bfbbcdf70e1fd50696c3891557b0edec5b6c25 100644 --- a/src/query/tests/histogramTest.cpp +++ b/src/query/tests/histogramTest.cpp @@ -35,7 +35,7 @@ void doHistogramAddTest() { (int64_t)systemTime.tv_sec * 1000L + (uint64_t)systemTime.tv_usec / 1000; printf("total elapsed time: %ld\n", et - st); - printf("elements: %d, slot:%d \n", pHisto->numOfElems, pHisto->numOfEntries); + printf("elements: %ld, slot:%d \n", pHisto->numOfElems, pHisto->numOfEntries); tHistogramPrint(pHisto); printf("%ld\n", tHistogramSum(pHisto, 1.5)); diff --git a/src/query/tests/tsBufTest.cpp b/src/query/tests/tsBufTest.cpp index 04c5a152520d08329408253af271c4d43c5c0fe3..a525766a142327469c94964a00931568e95b604e 100644 --- a/src/query/tests/tsBufTest.cpp +++ b/src/query/tests/tsBufTest.cpp @@ -497,19 +497,103 @@ void mergeIdenticalVnodeBufferTest() { tsBufDestroy(pTSBuf1); tsBufDestroy(pTSBuf2); } + +void mergeMultiBlockFromOneGroupTest() { + STSBuf* pTSBuf1 = tsBufCreate(true, TSDB_ORDER_ASC); + STSBuf* pTSBuf2 = tsBufCreate(true, TSDB_ORDER_ASC); + + tVariant t = {0}; + t.nType = TSDB_DATA_TYPE_BIGINT; + + int32_t step = 30; + int32_t num = 1000; + int32_t numOfTags = 2; + + // vnodeId:0 + int64_t start = 10000; + for (int32_t i = 0; i < numOfTags; ++i) { + int64_t* list = createTsList(num, start, step); + t.i64 = i; + + tsBufAppend(pTSBuf1, 12, &t, (const char*)list, num * sizeof(int64_t)); + free(list); + + start += step * num; + } + + tsBufFlush(pTSBuf1); + + for (int32_t i = numOfTags; i < numOfTags * 2; ++i) { + int64_t* list = createTsList(num, start, step); + + t.i64 = i; + tsBufAppend(pTSBuf1, 77, &t, (const char*)list, num * sizeof(int64_t)); + free(list); + + start += step * num; + } + + tsBufFlush(pTSBuf1); + + start = 10000; + for (int32_t i = 911; i < 912; ++i) { + int64_t* list = createTsList(num, start, step); + t.i64 = i; + + tsBufAppend(pTSBuf1, 12, &t, (const char*)list, num * sizeof(int64_t)); + free(list); + + start += step * num; + } + tsBufFlush(pTSBuf1); + + char* p = (char*) malloc(1024768); + int32_t len = 0; + int32_t numOfBlocks = 0; + + dumpFileBlockByGroupId(pTSBuf1, 12, p, &len, &numOfBlocks); + + STSBuf* pNew = tsBufCreateFromCompBlocks(p, numOfBlocks, len, 1, 12); + printf("%p\n", pNew); + + tsBufDisplay(pNew); + +// tsBufMerge(pTSBuf1, pTSBuf2); +// EXPECT_EQ(pTSBuf1->numOfGroups, 2); +// EXPECT_EQ(pTSBuf1->numOfTotal, numOfTags * 2 * num); +// +// tsBufResetPos(pTSBuf1); +// +// int32_t count = 0; +// while (tsBufNextPos(pTSBuf1)) { +// STSElem elem = tsBufGetElem(pTSBuf1); +// +// if (count++ < numOfTags * num) { +// EXPECT_EQ(elem.id, 12); +// } else { +// EXPECT_EQ(elem.id, 77); +// } +// +// printf("%d-%" PRIu64 "-%" PRIu64 "\n", elem.id, elem.tag->i64, elem.ts); +// } +// +// tsBufDestroy(pTSBuf1); +// tsBufDestroy(pTSBuf2); +} } // namespace //TODO add binary tag value test case TEST(testCase, tsBufTest) { - simpleTest(); - largeTSTest(); - multiTagsTest(); - multiVnodeTagsTest(); - loadDataTest(); - invalidFileTest(); +// simpleTest(); +// largeTSTest(); +// multiTagsTest(); +// multiVnodeTagsTest(); +// loadDataTest(); +// invalidFileTest(); // randomIncTsTest(); - TSTraverse(); - mergeDiffVnodeBufferTest(); - mergeIdenticalVnodeBufferTest(); +// TSTraverse(); +// mergeDiffVnodeBufferTest(); +// mergeIdenticalVnodeBufferTest(); + mergeMultiBlockFromOneGroupTest(); }