Thank you for working on this. At Mon, 7 Sep 2020 16:30:59 +0530, Bharath Rupireddy <bharath.rupireddyforpostg...@gmail.com> wrote in > Hi, > > I observed that, in logical replication when a subscriber is missing > some columns, it currently emits an error message that says "some" > columns are missing(see logicalrep_rel_open()), but it doesn't specify > what the missing column names are. The comment there also says that > finding the missing column names is a todo item(/* TODO, detail > message with names of missing columns */). > > I propose a patch to find the missing columns on the subscriber > relation using the publisher relation columns and show them in the > error message which can make the error more informative to the user.
+1 for objective. However, that can be done simpler way that doesn't need additional loops by using bitmapset to hold missing remote attribute numbers. This also make the variable "found" useless. > Here's a snapshot how the error looks with the patch: > 2020-09-04 01:00:36.721 PDT [843128] ERROR: logical replication > target relation "public.test_1" is missing "b1, d1" replicated columns > 2020-09-04 01:00:46.784 PDT [843132] ERROR: logical replication > target relation "public.test_1" is missing "b1" replicated columns > 2020-09-06 21:24:53.645 PDT [902945] ERROR: logical replication > target relation "public.test_1" is missing "a1, c1, d1, b1" replicated > columns > > Thoughts? FWIW, I would prefer that the message be like logical replication target relation "public.test_1" is missing replicated columns: "a1", "c1" I'm not sure we need to have separate messages for singlar and plural. regards. -- Kyotaro Horiguchi NTT Open Source Software Center