diff --git a/src/backend/storage/file/buffile.c b/src/backend/storage/file/buffile.c index dd687dfe71..d3722616bb 100644 --- a/src/backend/storage/file/buffile.c +++ b/src/backend/storage/file/buffile.c @@ -768,17 +768,17 @@ BufFileTellBlock(BufFile *file) * Counts any holes left behind by BufFileAppend as part of the size. * Returns -1 on error. */ -off_t +int64 BufFileSize(BufFile *file) { - off_t lastFileSize; + int64 lastFileSize; /* Get the size of the last physical file. */ lastFileSize = FileSize(file->files[file->numFiles - 1]); if (lastFileSize < 0) return -1; - return ((file->numFiles - 1) * (off_t) MAX_PHYSICAL_FILESIZE) + + return ((file->numFiles - 1) * (int64) MAX_PHYSICAL_FILESIZE) + lastFileSize; } diff --git a/src/backend/utils/sort/logtape.c b/src/backend/utils/sort/logtape.c index 50a150b713..269523d5f6 100644 --- a/src/backend/utils/sort/logtape.c +++ b/src/backend/utils/sort/logtape.c @@ -426,7 +426,7 @@ ltsConcatWorkerTapes(LogicalTapeSet *lts, TapeShare *shared, { char filename[MAXPGPATH]; BufFile *file; - off_t filesize; + int64 filesize; lt = <s->tapes[i]; diff --git a/src/include/storage/buffile.h b/src/include/storage/buffile.h index a6cdeb451c..a4043bd69d 100644 --- a/src/include/storage/buffile.h +++ b/src/include/storage/buffile.h @@ -43,7 +43,7 @@ extern size_t BufFileWrite(BufFile *file, void *ptr, size_t size); extern int BufFileSeek(BufFile *file, int fileno, off_t offset, int whence); extern void BufFileTell(BufFile *file, int *fileno, off_t *offset); extern int BufFileSeekBlock(BufFile *file, long blknum); -extern off_t BufFileSize(BufFile *file); +extern int64 BufFileSize(BufFile *file); extern long BufFileAppend(BufFile *target, BufFile *source); extern BufFile *BufFileCreateShared(SharedFileSet *fileset, const char *name);