提交 865a13c1 编写于 作者: wmmhello's avatar wmmhello

fix error in sort logic

上级 78acaed8
......@@ -411,7 +411,7 @@ int32_t blockDataSplitRows(SSDataBlock* pBlock, bool hasVarCol, int32_t startInd
if (size > pageSize) {
*stopIndex = j - 1;
ASSERT(*stopIndex > startIndex);
ASSERT(*stopIndex >= startIndex);
return TSDB_CODE_SUCCESS;
}
......
......@@ -132,9 +132,9 @@ void tsortDestroySortHandle(SSortHandle* pSortHandle) {
taosMemoryFreeClear(pSortHandle->idStr);
blockDataDestroy(pSortHandle->pDataBlock);
for (size_t i = 0; i < taosArrayGetSize(pSortHandle->pOrderedSource); i++){
SExternalMemSource* pSource = taosArrayGet(pSortHandle->pOrderedSource, i);
blockDataDestroy(pSource->src.pBlock);
taosMemoryFreeClear(pSource);
SExternalMemSource** pSource = taosArrayGet(pSortHandle->pOrderedSource, i);
blockDataDestroy((*pSource)->src.pBlock);
taosMemoryFreeClear(*pSource);
}
taosArrayDestroy(pSortHandle->pOrderedSource);
taosMemoryFreeClear(pSortHandle);
......
......@@ -91,7 +91,7 @@ SSDataBlock* getSingleColDummyBlock(void* param) {
char strOri[128] = {0};
taosRandStr(strOri, size);
int32_t len = 0;
bool ret = taosMbsToUcs4(strOri, size, (TdUcs4*)varDataVal(str), 128, &len);
bool ret = taosMbsToUcs4(strOri, size, (TdUcs4*)varDataVal(str), size * TSDB_NCHAR_SIZE, &len);
if (!ret){
printf("error\n");
return NULL;
......@@ -321,6 +321,10 @@ TEST(testCase, external_mem_sort_Test) {
char buf[128] = {0};
memcpy(buf, varDataVal(v), varDataLen(v));
printf("%d: %s\n", row++, buf);
}else if(pInfo[i].type == TSDB_DATA_TYPE_DOUBLE) {
printf("double: %lf\n", *(double*)v);
}else if (pInfo[i].type == TSDB_DATA_TYPE_FLOAT) {
printf("float: %f\n", *(float*)v);
}else{
int64_t result = 0;
if (!bigendian()){
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册