aboutsummaryrefslogtreecommitdiff
path: root/src/backend/replication
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/replication')
-rw-r--r--src/backend/replication/logical/relation.c9
-rw-r--r--src/backend/replication/logical/tablesync.c16
2 files changed, 10 insertions, 15 deletions
diff --git a/src/backend/replication/logical/relation.c b/src/backend/replication/logical/relation.c
index 41eff8971a5..e65f2865ddb 100644
--- a/src/backend/replication/logical/relation.c
+++ b/src/backend/replication/logical/relation.c
@@ -277,8 +277,13 @@ logicalrep_rel_open(LogicalRepRelId remoteid, LOCKMODE lockmode)
found = 0;
for (i = 0; i < desc->natts; i++)
{
- int attnum = logicalrep_rel_att_by_name(remoterel,
- NameStr(desc->attrs[i]->attname));
+ int attnum;
+
+ if (desc->attrs[i]->attisdropped)
+ continue;
+
+ attnum = logicalrep_rel_att_by_name(remoterel,
+ NameStr(desc->attrs[i]->attname));
entry->attrmap[i] = attnum;
if (attnum >= 0)
diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c
index d69fc7086d0..fe45fb88203 100644
--- a/src/backend/replication/logical/tablesync.c
+++ b/src/backend/replication/logical/tablesync.c
@@ -492,25 +492,15 @@ static List *
make_copy_attnamelist(LogicalRepRelMapEntry *rel)
{
List *attnamelist = NIL;
- TupleDesc desc = RelationGetDescr(rel->localrel);
int i;
- for (i = 0; i < desc->natts; i++)
+ for (i = 0; i < rel->remoterel.natts; i++)
{
- int remoteattnum = rel->attrmap[i];
-
- /* Skip dropped attributes. */
- if (desc->attrs[i]->attisdropped)
- continue;
-
- /* Skip attributes that are missing on remote side. */
- if (remoteattnum < 0)
- continue;
-
attnamelist = lappend(attnamelist,
- makeString(rel->remoterel.attnames[remoteattnum]));
+ makeString(rel->remoterel.attnames[i]));
}
+
return attnamelist;
}