diff --git a/src/backend/replication/logical/relation.c b/src/backend/replication/logical/relation.c index 9ee70a2..4f31c95 100644 --- a/src/backend/replication/logical/relation.c +++ b/src/backend/replication/logical/relation.c @@ -1,6 +1,6 @@ /*------------------------------------------------------------------------- * relation.c - * PostgreSQL logical replication + * PostgreSQL logical replication relation mapping cache * * Copyright (c) 2016-2020, PostgreSQL Global Development Group * @@ -8,8 +8,19 @@ * src/backend/replication/logical/relation.c * * NOTES - * This file contains helper functions for logical replication relation - * mapping cache. + * Routines in this file mainly have to do with mapping the proprties of + * local replication target relations to the properties of their remote + * counterpart. This mapping is maintained in a LogicalRepRelMapEntry + * struct per target relation, cached in a local hash table keyed by the + * remote relation OID. + * + * Since replication actions targeting partitioned tables need to be + * applied to their leaf partitions instead, the mapping info must be + * maintained for each partition separately, even though all point to the + * same remote relation. For that case, in addition to the target + * partitioned table's LogicalRepRelMapEntry, there is + * LogicalRepPartMapEntry for every partition touched so far, cached in + * another hash table which is keyed by partition OID. * *------------------------------------------------------------------------- */