On Mon, Sep 27, 2021 at 5:53 PM Alvaro Herrera <alvhe...@alvh.no-ip.org> wrote: > > On 2021-Sep-27, Amit Kapila wrote: > > > I am not sure what makes you say that we can't distinguish the above > > cases when there is already a separate rule for CURRENT_SCHEMA? I > > think you can distinguish by tracking the previous objects as we are > > already doing in the patch. But one thing that is not clear to me is > > is the reason to introduce a new type PUBLICATIONOBJ_CURRSCHEMA when > > we use PUBLICATIONOBJ_REL_IN_SCHEMA and PUBLICATIONOBJ_CONTINUATION to > > distinguish all cases of CURRENT_SCHEMA. Alvaro might have something > > in mind for this which is not apparent and that might have caused > > confusion to you as well? > > My issue is what happens if you have a schema that is named > CURRENT_SCHEMA. In the normal case where you do ALL TABLES IN SCHEMA > "CURRENT_SCHEMA" you would end up with a String containing > "CURRENT_SCHEMA", so how do you distinguish that from ALL TABLES IN > SCHEMA CURRENT_SCHEMA, which does not refer to the schema named > "CURRENT_SCHEMA" but in Vignesh's proposal also uses a String containing > "CURRENT_SCHEMA"? > > Now you could say "but who would be stupid enough to do that??!", >
But it is not allowed to create schema or table with the name CURRENT_SCHEMA, so not sure if we need to do anything special for it. However, if we want to handle it as a separate enum then the handling would be something like: | ALL TABLES IN_P SCHEMA CURRENT_SCHEMA { $$ = makeNode(PublicationObjSpec); $$->pubobjtype = PUBLICATIONOBJ_CURRSCHEMA; } ... ... | CURRENT_SCHEMA { $$ = makeNode(PublicationObjSpec); $$->pubobjtype = PUBLICATIONOBJ_CONTINUATION; } ; Now, during post-processing, the PUBLICATIONOBJ_CONTINUATION will be distinguished as CURRENT_SCHEMA because both rangeVar and name will be NULL. Do you have other ideas to deal with it? Vignesh has already point in his email [1] why we can't keep pubobjtype as PUBLICATIONOBJ_CURRSCHEMA in the second case, so I used PUBLICATIONOBJ_CONTINUATION. [1] - https://www.postgresql.org/message-id/CALDaNm06shp%2BALwC2s-dV-S4k2o6bcmXnXGX4ETkoXxKHQfjfA%40mail.gmail.com -- With Regards, Amit Kapila.