feat: free write buf after reading all blocks
This commit is contained in:
parent
fbc1d6244f
commit
3fb6ed8a42
|
@ -127,6 +127,7 @@ static int32_t destroySortMemFile(SSortHandle* pHandle);
|
||||||
static int32_t getPageFromExtMemFile(SSortHandle* pHandle, int32_t pageId, char** ppPage);
|
static int32_t getPageFromExtMemFile(SSortHandle* pHandle, int32_t pageId, char** ppPage);
|
||||||
static void setExtMemFilePageUnused(SSortMemFile* pMemFile, int32_t pageId);
|
static void setExtMemFilePageUnused(SSortMemFile* pMemFile, int32_t pageId);
|
||||||
static int32_t saveDirtyPagesToExtRowsMemFile(SSortHandle* pHandle);
|
static int32_t saveDirtyPagesToExtRowsMemFile(SSortHandle* pHandle);
|
||||||
|
static int32_t freeExtRowMemFileWriteBuf(SSortHandle* pHandle);
|
||||||
|
|
||||||
void tsortSetSingleTableMerge(SSortHandle* pHandle) {
|
void tsortSetSingleTableMerge(SSortHandle* pHandle) {
|
||||||
pHandle->singleTableMerge = true;
|
pHandle->singleTableMerge = true;
|
||||||
|
@ -1116,7 +1117,11 @@ static int32_t destroySortMemFile(SSortHandle* pHandle) {
|
||||||
taosMemoryFree(pCurr);
|
taosMemoryFree(pCurr);
|
||||||
}
|
}
|
||||||
tSimpleHashCleanup(pMemFile->mActivePages);
|
tSimpleHashCleanup(pMemFile->mActivePages);
|
||||||
|
pMemFile->mActivePages = NULL;
|
||||||
|
|
||||||
taosMemoryFree(pMemFile->writePageBuf);
|
taosMemoryFree(pMemFile->writePageBuf);
|
||||||
|
pMemFile->writePageBuf = NULL;
|
||||||
|
|
||||||
fclose(pMemFile->pTdFile);
|
fclose(pMemFile->pTdFile);
|
||||||
taosRemoveFile(pMemFile->memFilePath);
|
taosRemoveFile(pMemFile->memFilePath);
|
||||||
taosMemoryFree(pMemFile);
|
taosMemoryFree(pMemFile);
|
||||||
|
@ -1168,6 +1173,17 @@ static int32_t saveDirtyPagesToExtRowsMemFile(SSortHandle* pHandle) {
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int32_t freeExtRowMemFileWriteBuf(SSortHandle* pHandle) {
|
||||||
|
SSortMemFile* pMemFile = pHandle->pExtRowsMemFile;
|
||||||
|
|
||||||
|
if (pMemFile == NULL) return TSDB_CODE_SUCCESS;
|
||||||
|
|
||||||
|
taosMemoryFree(pMemFile->writePageBuf);
|
||||||
|
pMemFile->writePageBuf = NULL;
|
||||||
|
taosMemoryTrim(0);
|
||||||
|
return TSDB_CODE_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static void appendToRowIndexDataBlock(SSortHandle* pHandle, SSDataBlock* pSource, int32_t* rowIndex) {
|
static void appendToRowIndexDataBlock(SSortHandle* pHandle, SSDataBlock* pSource, int32_t* rowIndex) {
|
||||||
int32_t pageId = -1;
|
int32_t pageId = -1;
|
||||||
int32_t offset = -1;
|
int32_t offset = -1;
|
||||||
|
@ -1585,6 +1601,9 @@ static int32_t createBlocksMergeSortInitialSources(SSortHandle* pHandle) {
|
||||||
}
|
}
|
||||||
taosArrayDestroy(aExtSrc);
|
taosArrayDestroy(aExtSrc);
|
||||||
tSimpleHashCleanup(mTableNumRows);
|
tSimpleHashCleanup(mTableNumRows);
|
||||||
|
if (pHandle->bSortByRowId) {
|
||||||
|
freeExtRowMemFileWriteBuf(pHandle);
|
||||||
|
}
|
||||||
pHandle->type = SORT_SINGLESOURCE_SORT;
|
pHandle->type = SORT_SINGLESOURCE_SORT;
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue