From ce48598f0d246eb1d74068bf71160f4d33f66d1f Mon Sep 17 00:00:00 2001 From: slzhou Date: Fri, 15 Dec 2023 17:16:20 +0800 Subject: [PATCH] fix: pass first round test --- docs/en/12-taos-sql/05-insert.md | 6 +++--- docs/zh/12-taos-sql/05-insert.md | 6 +++--- source/libs/executor/src/scanoperator.c | 23 ++++++++++++----------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/docs/en/12-taos-sql/05-insert.md b/docs/en/12-taos-sql/05-insert.md index e5f502c563..f6e39a9734 100644 --- a/docs/en/12-taos-sql/05-insert.md +++ b/docs/en/12-taos-sql/05-insert.md @@ -158,8 +158,8 @@ Automatically creating table and the table name is specified through the `tbname ```sql INSERT INTO meters(tbname, location, groupId, ts, current, phase) - values('d31001', 'California.SanFrancisco', 2, '2021-07-13 14:06:34.630', 10.2, 219, 0.32) - values('d31001', 'California.SanFrancisco', 2, '2021-07-13 14:06:35.779', 10.15, 217, 0.33) - values('d31002', NULL, 2, '2021-07-13 14:06:34.255', 10.15, 217, 0.33) + values('d31001', 'California.SanFrancisco', 2, '2021-07-13 14:06:34.630', 10.2, 0.32) + ('d31001', 'California.SanFrancisco', 2, '2021-07-13 14:06:35.779', 10.15, 0.33) + ('d31002', NULL, 2, '2021-07-13 14:06:34.255', 10.15, 0.33) ``` diff --git a/docs/zh/12-taos-sql/05-insert.md b/docs/zh/12-taos-sql/05-insert.md index efcd5dd962..583d047c43 100644 --- a/docs/zh/12-taos-sql/05-insert.md +++ b/docs/zh/12-taos-sql/05-insert.md @@ -158,7 +158,7 @@ INSERT INTO d21001 USING meters TAGS ('California.SanFrancisco', 2) FILE '/tmp/c 自动建表, 表名通过tbname列指定 ```sql INSERT INTO meters(tbname, location, groupId, ts, current, phase) - values('d31001', 'California.SanFrancisco', 2, '2021-07-13 14:06:34.630', 10.2, 219, 0.32) - values('d31001', 'California.SanFrancisco', 2, '2021-07-13 14:06:35.779', 10.15, 217, 0.33) - values('d31002', NULL, 2, '2021-07-13 14:06:34.255', 10.15, 217, 0.33) + values('d31001', 'California.SanFrancisco', 2, '2021-07-13 14:06:34.630', 10.2, 0.32) + ('d31001', 'California.SanFrancisco', 2, '2021-07-13 14:06:35.779', 10.15, 0.33) + ('d31002', NULL, 2, '2021-07-13 14:06:34.255', 10.15, 0.33) ``` diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index bce8325195..6480aa9104 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -3268,7 +3268,6 @@ static void doGetBlockForTableMergeScan(SOperatorInfo* pOperator, bool* pFinishe uint32_t status = 0; code = loadDataBlock(pOperator, &pInfo->base, pBlock, &status); - if (code != TSDB_CODE_SUCCESS) { qInfo("table merge scan load datablock code %d, %s", code, GET_TASKID(pTaskInfo)); T_LONG_JMP(pTaskInfo->env, code); @@ -3294,7 +3293,7 @@ static SSDataBlock* getBlockForTableMergeScan(void* param) { SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; SStorageAPI* pAPI = &pTaskInfo->storageAPI; - SSDataBlock* pBlock = pInfo->pReaderBlock; + SSDataBlock* pBlock = NULL; int32_t code = 0; int64_t st = taosGetTimestampUs(); @@ -3304,18 +3303,24 @@ static SSDataBlock* getBlockForTableMergeScan(void* param) { while (true) { if (pInfo->rtnNextDurationBlocks) { if (pInfo->nextDurationBlocksIdx < pInfo->numNextDurationBlocks) { - copyDataBlock(pBlock, pInfo->nextDurationBlocks[pInfo->nextDurationBlocksIdx]); - blockDataDestroy(pInfo->nextDurationBlocks[pInfo->nextDurationBlocksIdx]); + pBlock = pInfo->nextDurationBlocks[pInfo->nextDurationBlocksIdx]; ++pInfo->nextDurationBlocksIdx; - if (pInfo->nextDurationBlocksIdx >= pInfo->numNextDurationBlocks) { - pInfo->rtnNextDurationBlocks = false; - pInfo->nextDurationBlocksIdx = 0; + } else { + for (int32_t i = 0; i < pInfo->numNextDurationBlocks; ++i) { + blockDataDestroy(pInfo->nextDurationBlocks[i]); } + pInfo->rtnNextDurationBlocks = false; + pInfo->nextDurationBlocksIdx = 0; + pInfo->numNextDurationBlocks = 0; + continue; } } else { + bool bFinished = false; bool bSkipped = false; doGetBlockForTableMergeScan(pOperator, &bFinished, &bSkipped); + pBlock = pInfo->pReaderBlock; + if (bFinished) { pInfo->bNewFilesetEvent = false; break; @@ -3346,7 +3351,6 @@ static SSDataBlock* getBlockForTableMergeScan(void* param) { pOperator->resultInfo.totalRows += pBlock->info.rows; pInfo->base.readRecorder.elapsedTime += (taosGetTimestampUs() - st) / 1000.0; - return pBlock; } @@ -3401,9 +3405,6 @@ int32_t startDurationForGroupTableMergeScan(SOperatorInfo* pOperator) { pInfo->bNewFilesetEvent = false; pInfo->bNextDurationBlockEvent = false; - pInfo->numNextDurationBlocks = 0; - pInfo->nextDurationBlocksIdx = 0; - pInfo->rtnNextDurationBlocks = false; pInfo->sortBufSize = 2048 * pInfo->bufPageSize; int32_t numOfBufPage = pInfo->sortBufSize / pInfo->bufPageSize;