On Fri, Feb 22, 2019 at 3:01 PM Magnus Hagander <mag...@hagander.net> wrote: > > It tracks things that happen in the general backends. Possibly we should also > consider counting the errors actually found when running base backups? OTOH, > that part of the code doesn't really track things like databases (as it > operates just on the raw data directory underneath), so that implementation > would definitely not be as clean...
Sorry I just realized that I totally forgot this part of the thread. While it's true that we operate on raw directory, I see that sendDir() already setup a isDbDir var, and if this is true lastDir should contain the oid of the underlying database. Wouldn't it be enough to call sendFile() using this, something like (untested): if (!sizeonly) - sent = sendFile(pathbuf, pathbuf + basepathlen + 1, &statbuf, true); + sent = sendFile(pathbuf, pathbuf + basepathlen + 1, &statbuf, true, isDbDir ? pg_atoi(lastDir+1, 4) : InvalidOid); and accordingly report any checksum error from sendFile()?