fix: save sort exec info into table merge scan struct and use it when explain
This commit is contained in:
parent
662a9997c1
commit
b870b6381f
|
@ -359,6 +359,8 @@ typedef struct STableMergeScanInfo {
|
||||||
// window to check if current data block needs to be loaded.
|
// window to check if current data block needs to be loaded.
|
||||||
SInterval interval;
|
SInterval interval;
|
||||||
SSampleExecInfo sample; // sample execution info
|
SSampleExecInfo sample; // sample execution info
|
||||||
|
|
||||||
|
SSortExecInfo sortExecInfo;
|
||||||
} STableMergeScanInfo;
|
} STableMergeScanInfo;
|
||||||
|
|
||||||
typedef struct STagScanInfo {
|
typedef struct STagScanInfo {
|
||||||
|
|
|
@ -2831,6 +2831,13 @@ int32_t stopGroupTableMergeScan(SOperatorInfo* pOperator) {
|
||||||
|
|
||||||
size_t numReaders = taosArrayGetSize(pInfo->dataReaders);
|
size_t numReaders = taosArrayGetSize(pInfo->dataReaders);
|
||||||
|
|
||||||
|
SSortExecInfo sortExecInfo = tsortGetSortExecInfo(pInfo->pSortHandle);
|
||||||
|
pInfo->sortExecInfo.sortMethod = sortExecInfo.sortMethod;
|
||||||
|
pInfo->sortExecInfo.sortBuffer = sortExecInfo.sortBuffer;
|
||||||
|
pInfo->sortExecInfo.loops += sortExecInfo.loops;
|
||||||
|
pInfo->sortExecInfo.readBytes += sortExecInfo.readBytes;
|
||||||
|
pInfo->sortExecInfo.writeBytes += sortExecInfo.writeBytes;
|
||||||
|
|
||||||
for (int32_t i = 0; i < numReaders; ++i) {
|
for (int32_t i = 0; i < numReaders; ++i) {
|
||||||
STableMergeScanSortSourceParam* param = taosArrayGet(pInfo->sortSourceParams, i);
|
STableMergeScanSortSourceParam* param = taosArrayGet(pInfo->sortSourceParams, i);
|
||||||
blockDataDestroy(param->inputBlock);
|
blockDataDestroy(param->inputBlock);
|
||||||
|
@ -2955,7 +2962,7 @@ int32_t getTableMergeScanExplainExecInfo(SOperatorInfo* pOptr, void** pOptrExpla
|
||||||
STableMergeScanExecInfo* execInfo = taosMemoryCalloc(1, sizeof(STableMergeScanExecInfo));
|
STableMergeScanExecInfo* execInfo = taosMemoryCalloc(1, sizeof(STableMergeScanExecInfo));
|
||||||
STableMergeScanInfo* pInfo = pOptr->info;
|
STableMergeScanInfo* pInfo = pOptr->info;
|
||||||
execInfo->blockRecorder = pInfo->readRecorder;
|
execInfo->blockRecorder = pInfo->readRecorder;
|
||||||
execInfo->sortExecInfo = tsortGetSortExecInfo(pInfo->pSortHandle);
|
execInfo->sortExecInfo = pInfo->sortExecInfo;
|
||||||
|
|
||||||
*pOptrExplain = execInfo;
|
*pOptrExplain = execInfo;
|
||||||
*len = sizeof(STableMergeScanExecInfo);
|
*len = sizeof(STableMergeScanExecInfo);
|
||||||
|
|
Loading…
Reference in New Issue