Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit339bd6d

Browse files
committed
Revert "fix stdio buffering issue for Windows"
This reverts commitde79406.
1 parentc6c43f6 commit339bd6d

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
BlockNumberblknum=0;
18031803
charread_buffer[BLCKSZ];
18041804
charin_buf[STDIO_BUFSIZE];
1805-
off_tcur_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_tread_len=fread(read_buffer,1,BLCKSZ,in);
18251825
PageStatepage_st;
1826-
size_tread_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
intrc=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)

[8]ページ先頭

©2009-2025 Movatter.jp