Closed
Description
Hello developers, it seems that I found an issue accidentally.
When do ptrack_get_pagemapset() query, this function will get all relation files and then retrieve each file to construct its page map information.
- ptrack_filelist_getnext() is to get the next relation file's info, please notice this two lines (just consider only one segment file case)
ctx->bid.blocknum = 0;
ctx->relsize = fst.st_size / BLCKSZ; - ptrack_get_pagemapset() will do loop to check whether there're this block's update lsn or not, please notice the loop condition:
/* Stop traversal if there are no more segments */
if (ctx->bid.blocknum > ctx->relsize) { complete this segment to output, and get next relation file to loop }
Obviously, if (ctx->bid.blocknum > ctx->relsize) should be if (ctx->bid.blocknum + 1 >= ctx->relsize) ?
And another small question: maybe ctx->relsize will be better named blknums?
If I miss some points and this is not an issue, apology for my disturbance.
Regards,
Bird