diff --git a/src/backend/distributed/metadata/metadata_sync.c b/src/backend/distributed/metadata/metadata_sync.c index 730c30759..dd4c81bc3 100644 --- a/src/backend/distributed/metadata/metadata_sync.c +++ b/src/backend/distributed/metadata/metadata_sync.c @@ -4725,8 +4725,10 @@ PropagateNodeWideObjectsCommandList(void) List *alterRoleSetCommands = GenerateAlterRoleSetCommandForRole(InvalidOid); ddlCommands = list_concat(ddlCommands, alterRoleSetCommands); } +#if PG_VERSION_NUM >= PG_VERSION_15 List *grantOnParameterCommands = GrantOnParameters(); ddlCommands = list_concat(ddlCommands, grantOnParameterCommands); +#endif /* PG_VERSION_NUM >= PG_VERSION_15 */ return ddlCommands; } diff --git a/src/include/distributed/grant_utils.h b/src/include/distributed/grant_utils.h index c3ceb413e..b76538ffe 100644 --- a/src/include/distributed/grant_utils.h +++ b/src/include/distributed/grant_utils.h @@ -12,7 +12,10 @@ #include "nodes/parsenodes.h" +#if PG_VERSION_NUM >= PG_VERSION_15 extern List * GrantOnParameters(void); +#endif /* PG_VERSION_NUM >= PG_VERSION_15 */ + extern char * GenerateSetRoleQuery(Oid roleOid); extern GrantStmt * GenerateGrantStmtForRights(ObjectType objectType, Oid roleOid, diff --git a/src/test/regress/expected/grant_on_parameter_propagation_0.out b/src/test/regress/expected/grant_on_parameter_propagation_0.out new file mode 100644 index 000000000..b1ed9cc5b --- /dev/null +++ b/src/test/regress/expected/grant_on_parameter_propagation_0.out @@ -0,0 +1,9 @@ +-- +-- PG15 +-- +SHOW server_version \gset +SELECT substring(:'server_version', '\d+')::int >= 15 AS server_version_ge_15 +\gset +\if :server_version_ge_15 +\else +\q