diff --git a/src/backend/storage/file/buffile.c b/src/backend/storage/file/buffile.c index e93813d9737..8c7d8bcb91d 100644 --- a/src/backend/storage/file/buffile.c +++ b/src/backend/storage/file/buffile.c @@ -798,10 +798,10 @@ 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 by seeking to end. */ lastFileSize = FileSeek(file->files[file->numFiles - 1], 0, SEEK_END); @@ -809,7 +809,7 @@ BufFileSize(BufFile *file) return -1; file->offsets[file->numFiles - 1] = lastFileSize; - 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 50a150b7136..269523d5f6a 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 a6cdeb451c1..a4043bd69d1 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);