diff options
author | Robert Haas <rhaas@postgresql.org> | 2022-03-17 13:21:07 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2022-03-17 13:21:07 -0400 |
commit | 39f0c4bd670c3482f4def87a31108c175da0a8d3 (patch) | |
tree | b2e5a69830bfd7a02c3fe9eb5623654f118e751b /src/backend/executor/execParallel.c | |
parent | 5a079662256e381fde699c4fbbed6c2504a6d30a (diff) | |
download | postgresql-39f0c4bd670c3482f4def87a31108c175da0a8d3.tar.gz postgresql-39f0c4bd670c3482f4def87a31108c175da0a8d3.zip |
Refactor code for reading and writing relation map files.
Restructure things so that the functions which update the global
variables shared_map and local_map are separate from the functions
which just read and write relation map files without touching any
global variables.
In the new structure of things, write_relmap_file() writes a relmap
file but no longer performs global variable updates. A symmetric
function read_relmap_file() that just reads a file without changing
any global variables is added, and load_relmap_file(), which does
change the global variables, uses it as a subroutine.
Because write_relmap_file() no longer updates shared_map and
local_map, that logic is moved to perform_relmap_update(). However,
no similar logic is added to relmap_redo() even though it also calls
write_relmap_file(). That's because recovery must not rely on the
contents of the relation map, and therefore there is no need to
initialize it. In fact, doing so seems like a mistake, because we
might then manage to rely on the in-memory map where we shouldn't.
Patch by me, based on earlier work by Dilip Kumar. Reviewed by
Ashutosh Sharma.
Discussion: http://postgr.es/m/CA+TgmobQLgrt4AXsc0ru7aFFkzv=9fS-Q_yO69=k9WY67RCctg@mail.gmail.com
Diffstat (limited to 'src/backend/executor/execParallel.c')
0 files changed, 0 insertions, 0 deletions