Thanks for the comments. Attaching the v3 patch.
On Tue, Sep 8, 2020 at 8:19 PM Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
>
> This looks a bit fiddly. Would it be less cumbersome to use
> quote_identifier here instead?
>
Changed. quote_identifier() adds quotes wherever necessary.
>
> Please do use errmsg_plural -- have the new function return the number
> of missing columns. Should be pretty straightforward.
>
Changed. Now the error message looks as below:
CREATE TABLE test_tbl1(a1 int, b1 text, c1 int, d1 real, e1 int);
ERROR: logical replication target relation "public.test_tbl1" is
missing replicated column:c1
ERROR: logical replication target relation "public.test_tbl1" is
missing replicated columns:b1,c1
ERROR: logical replication target relation "public.test_tbl1" is
missing replicated columns:b1,c1,e1
CREATE TABLE test_tbl1("!A1" int, "%b1" text, "@C1" int, d1 real, E1 int);
ERROR: logical replication target relation "public.test_tbl1" is
missing replicated column:"@C1"
ERROR: logical replication target relation "public.test_tbl1" is
missing replicated columns:"@C1",d1
ERROR: logical replication target relation "public.test_tbl1" is
missing replicated columns:"!A1","@C1",d1
ERROR: logical replication target relation "public.test_tbl1" is
missing replicated columns:"!A1","@C1",d1,e1
ERROR: logical replication target relation "public.test_tbl1" is
missing replicated columns:"!A1","%b1","@C1",d1,e1
With Regards,
Bharath Rupireddy.
EnterpriseDB: http://www.enterprisedb.com