Re: Unnecessary static variable?
От | Tom Lane |
---|---|
Тема | Re: Unnecessary static variable? |
Дата | |
Msg-id | 6028.1516208381@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Unnecessary static variable? (Antonin Houska <ah@cybertec.at>) |
Ответы |
Re: Unnecessary static variable?
|
Список | pgsql-hackers |
Antonin Houska <ah@cybertec.at> writes: > While reading XLogPageRead() I was surprised that readLen variable is set but > not used in the read() call. Then I realized that it's declared static > although no other function uses it. Maybe it was used earlier to exit early if > sufficient amount of data was already read? I think this case is now handled > by the calling function xlogreader.c:ReadPageInternal(). > I suggest to make the variable local: Hmm ... I agree that making the variable local is a simple improvement, but your patch also does this: > *************** retry: > *** 11648,11654 **** > } > > pgstat_report_wait_start(WAIT_EVENT_WAL_READ); > ! if (read(readFile, readBuf, XLOG_BLCKSZ) != XLOG_BLCKSZ) > { > char fname[MAXFNAMELEN]; > > --- 11644,11650 ---- > } > > pgstat_report_wait_start(WAIT_EVENT_WAL_READ); > ! if (read(readFile, readBuf, readLen) != readLen) > { > char fname[MAXFNAMELEN]; and that I'm less sure is correct. At one time, I think, readLen told how much data in readBuf was actually valid. It seems not to be used for that anymore, but I don't much like the idea that readBuf is only partially filled but there is *no* persistent state indicating how much is valid. The existing coding guarantees that the answer is "XLOG_BLCKSZ", so that's fine, but this change would remove the guarantee. regards, tom lane
В списке pgsql-hackers по дате отправления: