v3-0001-Refactor-BufFile-buffer-fields-to-eliminate-odd-t.patch
application/octet-stream
Filename: v3-0001-Refactor-BufFile-buffer-fields-to-eliminate-odd-t.patch
Type: application/octet-stream
Part: 0
From 3ac6ca495869e35d766dcbdfe93b4e0e0b3d3be1 Mon Sep 17 00:00:00 2001
From: "Chao Li (Evan)" <lic@highgo.com>
Date: Tue, 23 Dec 2025 10:44:27 +0800
Subject: [PATCH v3] Refactor BufFile buffer fields to eliminate odd type casts
Use int64 for BufFile buffer position and length fields, and adjust
related local variables accordingly. This avoids repeated and confusing
casts between int and wider types when computing buffer offsets and
write sizes.
No functional change intended.
Author: Chao Li <lic@highgo.com>
Discussion: https://postgr.es/m/aUStrqoOCDRFAq1M@paquier.xyz
---
src/backend/storage/file/buffile.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/backend/storage/file/buffile.c b/src/backend/storage/file/buffile.c
index 85b316d879d..d42b630d8cc 100644
--- a/src/backend/storage/file/buffile.c
+++ b/src/backend/storage/file/buffile.c
@@ -93,8 +93,8 @@ struct BufFile
*/
int curFile; /* file index (0..n) part of current pos */
pgoff_t curOffset; /* offset part of current pos */
- int pos; /* next read/write position in buffer */
- int nbytes; /* total # of valid bytes in buffer */
+ int64 pos; /* next read/write position in buffer */
+ int64 nbytes; /* total # of valid bytes in buffer */
/*
* XXX Should ideally use PGIOAlignedBlock, but might need a way to avoid
@@ -493,8 +493,8 @@ BufFileLoadBuffer(BufFile *file)
static void
BufFileDumpBuffer(BufFile *file)
{
- int wpos = 0;
- int bytestowrite;
+ int64 wpos = 0;
+ int64 bytestowrite;
File thisfile;
/*
@@ -503,7 +503,7 @@ BufFileDumpBuffer(BufFile *file)
*/
while (wpos < file->nbytes)
{
- pgoff_t availbytes;
+ int64 availbytes;
instr_time io_start;
instr_time io_time;
@@ -524,8 +524,8 @@ BufFileDumpBuffer(BufFile *file)
bytestowrite = file->nbytes - wpos;
availbytes = MAX_PHYSICAL_FILESIZE - file->curOffset;
- if ((pgoff_t) bytestowrite > availbytes)
- bytestowrite = (int) availbytes;
+ if (bytestowrite > availbytes)
+ bytestowrite = availbytes;
thisfile = file->files[file->curFile];
@@ -983,10 +983,10 @@ BufFileTruncateFileSet(BufFile *file, int fileno, pgoff_t offset)
{
/* No need to reset the current pos if the new pos is greater. */
if (newOffset <= file->curOffset + file->pos)
- file->pos = (int) (newOffset - file->curOffset);
+ file->pos = newOffset - file->curOffset;
/* Adjust the nbytes for the current buffer. */
- file->nbytes = (int) (newOffset - file->curOffset);
+ file->nbytes = newOffset - file->curOffset;
}
else if (newFile == file->curFile &&
newOffset < file->curOffset)
--
2.39.5 (Apple Git-154)