On Thu, Jun 17, 2021 at 2:17 PM Andres Freund <andres@anarazel.de> wrote:
> Adding a hacky special case implementation for cross-database relation
> accesses that violates all kinds of assumptions (like holding a lock on
> a relation when accessing it / pinning pages, processing relcache
> invals, ...) doesn't seem like a good plan.
I agree that we don't want hacky code that violates assumptions, but
bypassing shared_buffers is a bit hacky, too. Can't we lock the
relations as we're copying them? We know pg_class's OID a fortiori,
and we can find out all the other OIDs as we go.
I'm just thinking that the hackiness of going around shared_buffers
feels irreducible, but maybe the hackiness in the patch is something
that can be solved with more engineering.
--
Robert Haas
EDB: http://www.enterprisedb.com