Skip to content

Commit 339bd6d

Browse files
committed
Revert "fix stdio buffering issue for Windows"
This reverts commit de79406.
1 parent c6c43f6 commit 339bd6d

File tree

1 file changed

+8
-24
lines changed

1 file changed

+8
-24
lines changed

src/data.c

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ restore_data_file_internal(FILE *in, FILE *out, pgFile *file, uint32 backup_vers
10301030
* go to the next page.
10311031
*/
10321032
if (!headers && fseek(in, read_len, SEEK_CUR) != 0)
1033-
elog(ERROR, "Cannot seek block %u of \"%s\": %s",
1033+
elog(ERROR, "Cannot seek block %u of '%s': %s",
10341034
blknum, from_fullpath, strerror(errno));
10351035
continue;
10361036
}
@@ -1039,7 +1039,7 @@ restore_data_file_internal(FILE *in, FILE *out, pgFile *file, uint32 backup_vers
10391039
cur_pos_in != headers[n_hdr].pos)
10401040
{
10411041
if (fseek(in, headers[n_hdr].pos, SEEK_SET) != 0)
1042-
elog(ERROR, "Cannot seek to offset %u of \"%s\": %s",
1042+
elog(ERROR, "Cannot seek to offset %u of '%s': %s",
10431043
headers[n_hdr].pos, from_fullpath, strerror(errno));
10441044

10451045
cur_pos_in = headers[n_hdr].pos;
@@ -1802,7 +1802,6 @@ get_checksum_map(const char *fullpath, uint32 checksum_version,
18021802
BlockNumber blknum = 0;
18031803
char read_buffer[BLCKSZ];
18041804
char in_buf[STDIO_BUFSIZE];
1805-
off_t cur_pos = 0;
18061805

18071806
/* open file */
18081807
in = fopen(fullpath, "r+");
@@ -1820,32 +1819,16 @@ get_checksum_map(const char *fullpath, uint32 checksum_version,
18201819
checksum_map = pgut_malloc(n_blocks * sizeof(PageState));
18211820
memset(checksum_map, 0, n_blocks * sizeof(PageState));
18221821

1823-
for (;;)
1822+
for (blknum = 0; blknum < n_blocks; blknum++)
18241823
{
1824+
size_t read_len = fread(read_buffer, 1, BLCKSZ, in);
18251825
PageState page_st;
1826-
size_t read_len = 0;
1827-
1828-
if (blknum >= n_blocks)
1829-
break;
1830-
1831-
if (cur_pos != blknum * BLCKSZ &&
1832-
fseek(in, blknum * BLCKSZ, SEEK_SET))
1833-
{
1834-
elog(ERROR, "Cannot seek to offset %u in file \"%s\": %s",
1835-
blknum * BLCKSZ, fullpath, strerror(errno));
1836-
}
1837-
1838-
read_len = fread(read_buffer, 1, BLCKSZ, in);
1839-
cur_pos += read_len;
18401826

18411827
/* report error */
18421828
if (ferror(in))
18431829
elog(ERROR, "Cannot read block %u of \"%s\": %s",
18441830
blknum, fullpath, strerror(errno));
18451831

1846-
if (read_len == 0 && feof(in))
1847-
break;
1848-
18491832
if (read_len == BLCKSZ)
18501833
{
18511834
int rc = validate_one_page(read_buffer, segmentno + blknum,
@@ -1861,11 +1844,12 @@ get_checksum_map(const char *fullpath, uint32 checksum_version,
18611844

18621845
checksum_map[blknum].lsn = page_st.lsn;
18631846
}
1864-
1865-
blknum++;
18661847
}
18671848
else
1868-
elog(WARNING, "Odd size read len %lu for blknum %u in file \"%s\"", read_len, blknum, fullpath);
1849+
elog(ERROR, "Failed to read blknum %u from file \"%s\"", blknum, fullpath);
1850+
1851+
if (feof(in))
1852+
break;
18691853

18701854
if (interrupted)
18711855
elog(ERROR, "Interrupted during page reading");

0 commit comments

Comments
 (0)