提交 8b4b14f5 编写于 作者: H Haojun Liao

[td-11818] opt.

上级 4a5d7650
...@@ -5835,6 +5835,8 @@ static SSDataBlock* doSort(void* param, bool* newgroup) { ...@@ -5835,6 +5835,8 @@ static SSDataBlock* doSort(void* param, bool* newgroup) {
addToDiskbasedBuf(pInfo, pTaskInfo->env); addToDiskbasedBuf(pInfo, pTaskInfo->env);
} }
blockDataEnsureCapacity(pInfo->pDataBlock, pInfo->capacity);
int32_t code = sortComparInit(&pInfo->cmpParam, pInfo); int32_t code = sortComparInit(&pInfo->cmpParam, pInfo);
if (code != TSDB_CODE_SUCCESS) { if (code != TSDB_CODE_SUCCESS) {
longjmp(pTaskInfo->env, code); longjmp(pTaskInfo->env, code);
...@@ -5883,7 +5885,7 @@ SOperatorInfo *createOrderOperatorInfo(SOperatorInfo* downstream, SArray* pExprI ...@@ -5883,7 +5885,7 @@ SOperatorInfo *createOrderOperatorInfo(SOperatorInfo* downstream, SArray* pExprI
} }
pInfo->sortBufSize = 1024 * 1024 * 5; // 1MB pInfo->sortBufSize = 1024 * 1024 * 5; // 1MB
pInfo->capacity = 4096; pInfo->capacity = 64*1024;
pInfo->pDataBlock = createOutputBuf_rv(pExprInfo, pInfo->capacity); pInfo->pDataBlock = createOutputBuf_rv(pExprInfo, pInfo->capacity);
pInfo->pSources = taosArrayInit(4, POINTER_BYTES); pInfo->pSources = taosArrayInit(4, POINTER_BYTES);
pInfo->cmpParam.orderInfo = createBlockOrder(pExprInfo, pOrderVal); pInfo->cmpParam.orderInfo = createBlockOrder(pExprInfo, pOrderVal);
...@@ -5896,7 +5898,7 @@ SOperatorInfo *createOrderOperatorInfo(SOperatorInfo* downstream, SArray* pExprI ...@@ -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) { if (pInfo->pSources == NULL || code != 0 || pInfo->cmpParam.orderInfo == NULL || pInfo->pDataBlock == NULL) {
tfree(pOperator); tfree(pOperator);
destroyOrderOperatorInfo(pInfo, taosArrayGetSize(pExprInfo)); destroyOrderOperatorInfo(pInfo, taosArrayGetSize(pExprInfo));
......
...@@ -262,7 +262,7 @@ TEST(testCase, external_sort_Test) { ...@@ -262,7 +262,7 @@ TEST(testCase, external_sort_Test) {
exp1->base.resSchema = createSchema(TSDB_DATA_TYPE_BINARY, 40, 2, "res1"); exp1->base.resSchema = createSchema(TSDB_DATA_TYPE_BINARY, 40, 2, "res1");
taosArrayPush(pExprInfo, &exp1); taosArrayPush(pExprInfo, &exp1);
SOperatorInfo* pOperator = createOrderOperatorInfo(createDummyOperator(5000), pExprInfo, pOrderVal); SOperatorInfo* pOperator = createOrderOperatorInfo(createDummyOperator(50000), pExprInfo, pOrderVal);
bool newgroup = false; bool newgroup = false;
SSDataBlock* pRes = NULL; SSDataBlock* pRes = NULL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册