Thread: pgsql: Fix cache look-up failures while applying changes in logical rep

pgsql: Fix cache look-up failures while applying changes in logical rep

From
Amit Kapila
Date:
Fix cache look-up failures while applying changes in logical replication.

While building a new attrmap which maps partition attribute numbers to
remoterel's, we incorrectly update the map for dropped column attributes.
Later, it caused cache look-up failure when we tried to use the map to
fetch the information about attributes.

This also fixes the partition map cache invalidation which was using the
wrong type cast to fetch the entry. We were using stale partition map
entry after invalidation which leads to the assertion or cache look-up
failure.

Reported-by: Shi Yu
Author: Hou Zhijie, Shi Yu
Reviewed-by: Amit Langote, Amit Kapila
Backpatch-through: 13, where it was introduced
Discussion: https://postgr.es/m/OSZPR01MB6310F46CD425A967E4AEF736FDA49@OSZPR01MB6310.jpnprd01.prod.outlook.com

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/d457cb4e8a5e25fe16420cb91cb8450d8fca49d3

Modified Files
--------------
src/backend/replication/logical/relation.c | 62 ++++++++++++++++++------------
src/test/subscription/t/013_partition.pl   | 58 +++++++++++++++++++++++++---
2 files changed, 90 insertions(+), 30 deletions(-)