diff --git a/source/libs/executor/src/tsort.c b/source/libs/executor/src/tsort.c index 7f44b5e433..8ed255313e 100644 --- a/source/libs/executor/src/tsort.c +++ b/source/libs/executor/src/tsort.c @@ -63,7 +63,8 @@ typedef struct SSortMemFile { int32_t numMemPages; SSHashObj* mActivePages; - FILE* pTdFile; + //FILE* pTdFile; + TdFilePtr pTdFile; char memFilePath[PATH_MAX]; } SSortMemFile; @@ -1037,8 +1038,12 @@ static int32_t getPageFromExtMemFile(SSortHandle* pHandle, int32_t pageId, char* ++pMemFile->numMemPages; } { - fseeko(pMemFile->pTdFile, ((int64_t)pageId) * pMemFile->pageSize, SEEK_SET); - fread(pEntry->data, pMemFile->pageSize, 1, pMemFile->pTdFile); + // fseeko(pMemFile->pTdFile, ((int64_t)pageId) * pMemFile->pageSize, SEEK_SET); + // fread(pEntry->data, pMemFile->pageSize, 1, pMemFile->pTdFile); + + taosLSeekFile(pMemFile->pTdFile, ((int64_t)pageId) * pMemFile->pageSize, SEEK_SET); + taosReadFile(pMemFile->pTdFile, pEntry->data, pMemFile->pageSize); + SSortMemPageEntry* tail = pMemFile->pagesTail; tail->next = pEntry; pEntry->next = NULL; @@ -1082,7 +1087,7 @@ static int32_t createSortMemFile(SSortHandle* pHandle) { taosGetTmpfilePath(tsTempDir, "sort-ext-mem", pMemFile->memFilePath); pMemFile->pTdFile = - fopen(pMemFile->memFilePath, "wb+"); + taosOpenFile(pMemFile->memFilePath, TD_FILE_CREATE | TD_FILE_WRITE | TD_FILE_READ | TD_FILE_TRUNC); pMemFile->currPageId = -1; pMemFile->currPageOffset = -1; @@ -1122,7 +1127,8 @@ static int32_t destroySortMemFile(SSortHandle* pHandle) { taosMemoryFree(pMemFile->writePageBuf); pMemFile->writePageBuf = NULL; - fclose(pMemFile->pTdFile); + // fclose(pMemFile->pTdFile); + taosCloseFile(&pMemFile->pTdFile); taosRemoveFile(pMemFile->memFilePath); taosMemoryFree(pMemFile); pHandle->pExtRowsMemFile = NULL; @@ -1142,9 +1148,10 @@ static int32_t saveBlockRowToExtRowsMemFile(SSortHandle* pHandle, SSDataBlock* p pMemFile->currPageOffset = 0; if (pMemFile->currPageId - pMemFile->startPageId >= pMemFile->numWritePages) { - fseeko(pMemFile->pTdFile, ((int64_t)pMemFile->startPageId) * pMemFile->pageSize, SEEK_SET); - fwrite(pMemFile->writePageBuf, pMemFile->pageSize * pMemFile->numWritePages, 1, pMemFile->pTdFile); - + // fseeko(pMemFile->pTdFile, ((int64_t)pMemFile->startPageId) * pMemFile->pageSize, SEEK_SET); + // fwrite(pMemFile->writePageBuf, pMemFile->pageSize * pMemFile->numWritePages, 1, pMemFile->pTdFile); + taosLSeekFile(pMemFile->pTdFile, ((int64_t)pMemFile->startPageId) * pMemFile->pageSize, SEEK_SET); + taosWriteFile(pMemFile->pTdFile, pMemFile->writePageBuf, pMemFile->pageSize * pMemFile->numWritePages); pMemFile->startPageId = pMemFile->currPageId; } } @@ -1166,9 +1173,11 @@ static int32_t saveDirtyPagesToExtRowsMemFile(SSortHandle* pHandle) { if (!pMemFile->bDirty) { return TSDB_CODE_SUCCESS; } - fseeko(pMemFile->pTdFile, ((int64_t)pMemFile->startPageId) * pMemFile->pageSize, SEEK_SET); + // fseeko(pMemFile->pTdFile, ((int64_t)pMemFile->startPageId) * pMemFile->pageSize, SEEK_SET); + taosLSeekFile(pMemFile->pTdFile, ((int64_t)pMemFile->startPageId) * pMemFile->pageSize, SEEK_SET); int32_t numWriteBytes = pMemFile->pageSize * (pMemFile->currPageId - pMemFile->startPageId) + pMemFile->currPageOffset + 1; - fwrite(pMemFile->writePageBuf, numWriteBytes, 1, pMemFile->pTdFile); + // fwrite(pMemFile->writePageBuf, numWriteBytes, 1, pMemFile->pTdFile); + taosWriteFile(pMemFile->pTdFile, pMemFile->writePageBuf, numWriteBytes); pMemFile->bDirty = false; return TSDB_CODE_SUCCESS; }