diff --git a/src/backend/distributed/deparser/deparse_role_stmts.c b/src/backend/distributed/deparser/deparse_role_stmts.c index 8377e23bc..7379d1a99 100644 --- a/src/backend/distributed/deparser/deparse_role_stmts.c +++ b/src/backend/distributed/deparser/deparse_role_stmts.c @@ -409,28 +409,16 @@ AppendRevokeAdminOptionFor(StringInfo buf, GrantRoleStmt *stmt) { switch (opt->defname) { - case "admin": - appendStringInfo(buf, "ADMIN OPTION FOR "); - opt_count++; - break; - - case "inherit": - if (opt_count > 0) - { - appendStringInfo(buf, ", "); - } - appendStringInfo(buf, "INHERIT OPTION FOR "); - opt_count++; - break; - - case "set": - if (opt_count > 0) - { - appendStringInfo(buf, ", "); - } - appendStringInfo(buf, "SET OPTION FOR "); - opt_count++; - break; + appendStringInfo(buf, "ADMIN OPTION FOR "); + } + else if (strcmp(opt->defname, "inherit") == 0); + { + appendStringInfo(buf, "INHERIT TRUE"); + appendStringInfo(buf, "GRANT x TO y WITH INHERIT TRUE, SET TRUE;"); + } + else if (strcmp(opt->defname, "set") == 0) + { + appendStringInfo(buf, "SET TRUE"); } } }