On Wed, Nov 3, 2021 at 8:30 AM Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Tue, Nov 2, 2021 at 8:13 PM Tomas Vondra > <tomas.von...@enterprisedb.com> wrote: > > > > > > > > > > Yeah, that is also true. So maybe at this, we can just rename the few > > > types as suggested by you and we can look at it later if we anytime > > > have more number of objects to add. > > > > > > > +1 > > > > Apart from what you have pointed above, we are using > "DO_PUBLICATION_REL_IN_SCHEMA" in pg_dump. I think we should replace > that as well with "DO_PUBLICATION_TABLE_IN_SCHEMA".
Thanks for the comments, the attached patch has the changes for the same. Regards, Vignesh
From 533de4b3024e12b033d82995a3b920b51f2a7d64 Mon Sep 17 00:00:00 2001 From: Vigneshwaran C <vignes...@gmail.com> Date: Wed, 3 Nov 2021 09:21:22 +0530 Subject: [PATCH] Renamed enums that included REL to TABLE in publish schema feature. Renamed PUBLICATIONOBJ_REL_IN_SCHEMA, PUBLICATIONOBJ_CURRSCHEMA, DO_PUBLICATION_REL_IN_SCHEMA and PRIO_PUBLICATION_REL_IN_SCHEMA to PUBLICATIONOBJ_TABLE_IN_SCHEMA, PUBLICATIONOBJ_TABLE_IN_CURRSCHEMA, DO_PUBLICATION_TABLE_IN_SCHEMA and PRIO_PUBLICATION_TABLE_IN_SCHEMA in publish schema feature, this change is required to avoid confusion with other objects like sequences which will be available in the future. --- src/backend/commands/publicationcmds.c | 8 ++++---- src/backend/parser/gram.y | 12 ++++++------ src/bin/pg_dump/pg_dump.c | 6 +++--- src/bin/pg_dump/pg_dump.h | 2 +- src/bin/pg_dump/pg_dump_sort.c | 6 +++--- src/include/nodes/parsenodes.h | 5 +++-- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c index d1fff13d2e..c8c45d9426 100644 --- a/src/backend/commands/publicationcmds.c +++ b/src/backend/commands/publicationcmds.c @@ -169,13 +169,13 @@ ObjectsInPublicationToOids(List *pubobjspec_list, ParseState *pstate, case PUBLICATIONOBJ_TABLE: *rels = lappend(*rels, pubobj->pubtable); break; - case PUBLICATIONOBJ_REL_IN_SCHEMA: + case PUBLICATIONOBJ_TABLE_IN_SCHEMA: schemaid = get_namespace_oid(pubobj->name, false); /* Filter out duplicates if user specifies "sch1, sch1" */ *schemas = list_append_unique_oid(*schemas, schemaid); break; - case PUBLICATIONOBJ_CURRSCHEMA: + case PUBLICATIONOBJ_TABLE_IN_CURRSCHEMA: search_path = fetch_search_path(false); if (search_path == NIL) /* nothing valid in search_path? */ ereport(ERROR, @@ -214,7 +214,7 @@ CheckObjSchemaNotAlreadyInPublication(List *rels, List *schemaidlist, if (list_member_oid(schemaidlist, relSchemaId)) { - if (checkobjtype == PUBLICATIONOBJ_REL_IN_SCHEMA) + if (checkobjtype == PUBLICATIONOBJ_TABLE_IN_SCHEMA) ereport(ERROR, errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("cannot add schema \"%s\" to publication", @@ -613,7 +613,7 @@ AlterPublicationSchemas(AlterPublicationStmt *stmt, rels = OpenReliIdList(reloids); CheckObjSchemaNotAlreadyInPublication(rels, schemaidlist, - PUBLICATIONOBJ_REL_IN_SCHEMA); + PUBLICATIONOBJ_TABLE_IN_SCHEMA); CloseTableList(rels); PublicationAddSchemas(pubform->oid, schemaidlist, false, stmt); diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index d0eb80e69c..8683dc1a37 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -9662,14 +9662,14 @@ PublicationObjSpec: | ALL TABLES IN_P SCHEMA ColId { $$ = makeNode(PublicationObjSpec); - $$->pubobjtype = PUBLICATIONOBJ_REL_IN_SCHEMA; + $$->pubobjtype = PUBLICATIONOBJ_TABLE_IN_SCHEMA; $$->name = $5; $$->location = @5; } | ALL TABLES IN_P SCHEMA CURRENT_SCHEMA { $$ = makeNode(PublicationObjSpec); - $$->pubobjtype = PUBLICATIONOBJ_CURRSCHEMA; + $$->pubobjtype = PUBLICATIONOBJ_TABLE_IN_CURRSCHEMA; $$->location = @5; } | ColId @@ -17351,17 +17351,17 @@ preprocess_pubobj_list(List *pubobjspec_list, core_yyscan_t yyscanner) pubobj->name = NULL; } } - else if (pubobj->pubobjtype == PUBLICATIONOBJ_REL_IN_SCHEMA || - pubobj->pubobjtype == PUBLICATIONOBJ_CURRSCHEMA) + else if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLE_IN_SCHEMA || + pubobj->pubobjtype == PUBLICATIONOBJ_TABLE_IN_CURRSCHEMA) { /* * We can distinguish between the different type of schema * objects based on whether name and pubtable is set. */ if (pubobj->name) - pubobj->pubobjtype = PUBLICATIONOBJ_REL_IN_SCHEMA; + pubobj->pubobjtype = PUBLICATIONOBJ_TABLE_IN_SCHEMA; else if (!pubobj->name && !pubobj->pubtable) - pubobj->pubobjtype = PUBLICATIONOBJ_CURRSCHEMA; + pubobj->pubobjtype = PUBLICATIONOBJ_TABLE_IN_CURRSCHEMA; else ereport(ERROR, errcode(ERRCODE_SYNTAX_ERROR), diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index b9635a95b6..7e98371d25 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -4194,7 +4194,7 @@ getPublicationNamespaces(Archive *fout) continue; /* OK, make a DumpableObject for this relationship */ - pubsinfo[j].dobj.objType = DO_PUBLICATION_REL_IN_SCHEMA; + pubsinfo[j].dobj.objType = DO_PUBLICATION_TABLE_IN_SCHEMA; pubsinfo[j].dobj.catId.tableoid = atooid(PQgetvalue(res, i, i_tableoid)); pubsinfo[j].dobj.catId.oid = atooid(PQgetvalue(res, i, i_oid)); @@ -10331,7 +10331,7 @@ dumpDumpableObject(Archive *fout, const DumpableObject *dobj) case DO_PUBLICATION_REL: dumpPublicationTable(fout, (const PublicationRelInfo *) dobj); break; - case DO_PUBLICATION_REL_IN_SCHEMA: + case DO_PUBLICATION_TABLE_IN_SCHEMA: dumpPublicationNamespace(fout, (const PublicationSchemaInfo *) dobj); break; @@ -18559,7 +18559,7 @@ addBoundaryDependencies(DumpableObject **dobjs, int numObjs, case DO_POLICY: case DO_PUBLICATION: case DO_PUBLICATION_REL: - case DO_PUBLICATION_REL_IN_SCHEMA: + case DO_PUBLICATION_TABLE_IN_SCHEMA: case DO_SUBSCRIPTION: /* Post-data objects: must come after the post-data boundary */ addObjectDependency(dobj, postDataBound->dumpId); diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h index f9af14b793..d1d8608e9c 100644 --- a/src/bin/pg_dump/pg_dump.h +++ b/src/bin/pg_dump/pg_dump.h @@ -81,7 +81,7 @@ typedef enum DO_POLICY, DO_PUBLICATION, DO_PUBLICATION_REL, - DO_PUBLICATION_REL_IN_SCHEMA, + DO_PUBLICATION_TABLE_IN_SCHEMA, DO_SUBSCRIPTION } DumpableObjectType; diff --git a/src/bin/pg_dump/pg_dump_sort.c b/src/bin/pg_dump/pg_dump_sort.c index 9901d9e0ba..410d1790ee 100644 --- a/src/bin/pg_dump/pg_dump_sort.c +++ b/src/bin/pg_dump/pg_dump_sort.c @@ -82,7 +82,7 @@ enum dbObjectTypePriorities PRIO_POLICY, PRIO_PUBLICATION, PRIO_PUBLICATION_REL, - PRIO_PUBLICATION_REL_IN_SCHEMA, + PRIO_PUBLICATION_TABLE_IN_SCHEMA, PRIO_SUBSCRIPTION, PRIO_DEFAULT_ACL, /* done in ACL pass */ PRIO_EVENT_TRIGGER, /* must be next to last! */ @@ -136,7 +136,7 @@ static const int dbObjectTypePriority[] = PRIO_POLICY, /* DO_POLICY */ PRIO_PUBLICATION, /* DO_PUBLICATION */ PRIO_PUBLICATION_REL, /* DO_PUBLICATION_REL */ - PRIO_PUBLICATION_REL_IN_SCHEMA, /* DO_PUBLICATION_REL_IN_SCHEMA */ + PRIO_PUBLICATION_TABLE_IN_SCHEMA, /* DO_PUBLICATION_TABLE_IN_SCHEMA */ PRIO_SUBSCRIPTION /* DO_SUBSCRIPTION */ }; @@ -1479,7 +1479,7 @@ describeDumpableObject(DumpableObject *obj, char *buf, int bufsize) "PUBLICATION TABLE (ID %d OID %u)", obj->dumpId, obj->catId.oid); return; - case DO_PUBLICATION_REL_IN_SCHEMA: + case DO_PUBLICATION_TABLE_IN_SCHEMA: snprintf(buf, bufsize, "PUBLICATION TABLES IN SCHEMA (ID %d OID %u)", obj->dumpId, obj->catId.oid); diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 49123e28a4..b241e932fb 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -3649,8 +3649,9 @@ typedef struct PublicationTable typedef enum PublicationObjSpecType { PUBLICATIONOBJ_TABLE, /* Table type */ - PUBLICATIONOBJ_REL_IN_SCHEMA, /* Relations in schema type */ - PUBLICATIONOBJ_CURRSCHEMA, /* Get the first element from search_path */ + PUBLICATIONOBJ_TABLE_IN_SCHEMA, /* Relations in schema type */ + PUBLICATIONOBJ_TABLE_IN_CURRSCHEMA, /* Get the first element from + * search_path */ PUBLICATIONOBJ_CONTINUATION /* Continuation of previous type */ } PublicationObjSpecType; -- 2.30.2