From 8b4b14f524661c8791813fdd52809ea9c4a68579 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 9 Feb 2022 18:23:51 +0800 Subject: [PATCH] [td-11818] opt. --- source/libs/executor/src/executorimpl.c | 6 ++++-- source/libs/executor/test/executorTests.cpp | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/source/libs/executor/src/executorimpl.c b/source/libs/executor/src/executorimpl.c index c1465023c0..6b4c8fb574 100644 --- a/source/libs/executor/src/executorimpl.c +++ b/source/libs/executor/src/executorimpl.c @@ -5835,6 +5835,8 @@ static SSDataBlock* doSort(void* param, bool* newgroup) { addToDiskbasedBuf(pInfo, pTaskInfo->env); } + blockDataEnsureCapacity(pInfo->pDataBlock, pInfo->capacity); + int32_t code = sortComparInit(&pInfo->cmpParam, pInfo); if (code != TSDB_CODE_SUCCESS) { longjmp(pTaskInfo->env, code); @@ -5883,7 +5885,7 @@ SOperatorInfo *createOrderOperatorInfo(SOperatorInfo* downstream, SArray* pExprI } pInfo->sortBufSize = 1024 * 1024 * 5; // 1MB - pInfo->capacity = 4096; + pInfo->capacity = 64*1024; pInfo->pDataBlock = createOutputBuf_rv(pExprInfo, pInfo->capacity); pInfo->pSources = taosArrayInit(4, POINTER_BYTES); pInfo->cmpParam.orderInfo = createBlockOrder(pExprInfo, pOrderVal); @@ -5896,7 +5898,7 @@ SOperatorInfo *createOrderOperatorInfo(SOperatorInfo* downstream, SArray* pExprI } } - int32_t code = createDiskbasedBuffer(&pInfo->pSortInternalBuf, 4096, 4096*1000, 1, "/tmp/"); + int32_t code = createDiskbasedBuffer(&pInfo->pSortInternalBuf, pInfo->capacity, pInfo->capacity*1000, 1, "/tmp/"); if (pInfo->pSources == NULL || code != 0 || pInfo->cmpParam.orderInfo == NULL || pInfo->pDataBlock == NULL) { tfree(pOperator); destroyOrderOperatorInfo(pInfo, taosArrayGetSize(pExprInfo)); diff --git a/source/libs/executor/test/executorTests.cpp b/source/libs/executor/test/executorTests.cpp index c154bb0fbb..2dd26ab534 100644 --- a/source/libs/executor/test/executorTests.cpp +++ b/source/libs/executor/test/executorTests.cpp @@ -262,7 +262,7 @@ TEST(testCase, external_sort_Test) { exp1->base.resSchema = createSchema(TSDB_DATA_TYPE_BINARY, 40, 2, "res1"); taosArrayPush(pExprInfo, &exp1); - SOperatorInfo* pOperator = createOrderOperatorInfo(createDummyOperator(5000), pExprInfo, pOrderVal); + SOperatorInfo* pOperator = createOrderOperatorInfo(createDummyOperator(50000), pExprInfo, pOrderVal); bool newgroup = false; SSDataBlock* pRes = NULL; -- GitLab