feat: change from FILE* to TDFilePtr
This commit is contained in:
parent
3fb6ed8a42
commit
754a15cac8
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue