From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com> |
Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: why can't a table be part of the same publication as its schema |
Date: | 2022-09-09 15:18:46 |
Message-ID: | CA+Tgmoaf=vvTZug0nT8ihti1jvLXnvSaRj1osLjVjmKwQTjfDg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Sep 9, 2022 at 10:29 AM houzj(dot)fnst(at)fujitsu(dot)com
<houzj(dot)fnst(at)fujitsu(dot)com> wrote:
> IIRC, the feature currently works almost the same as you described. It doesn't
> create entry for tables that are published via its schema level, it only record
> the published schema and check which tables are part of it.
Oh, well if that's the case, that is great news. But then I don't
understand Amit's comment from before:
> Yes, because otherwise, there was confusion while dropping the objects
> from publication. Consider in the above case, if we would have allowed
> it and then the user performs ALTER PUBLICATION p1 DROP ALL TABLES IN
> SCHEMA s1, then (a) shall we remove both schema s1 and a table that is
> separately added (s1.t1) from that schema, or (b) just remove schema
> s1?
I believe that (b) is the correct behavior, so I assumed that this
issue must be some difficulty in implementing it, like a funny catalog
representation.
Things might be clearer if we'd made the syntax "ALTER PUBLICATION p1
{ ADD | DROP } { TABLE | SCHEMA } name". I don't understand why we
used this ALL TABLES IN SCHEMA language.
--
Robert Haas
EDB: http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2022-09-09 15:34:19 | Re: Remove redundant code in pl_exec.c |
Previous Message | Japin Li | 2022-09-09 15:18:04 | Remove redundant code in pl_exec.c |