From 87dee41f3ed6d6c2a93e7ff359776cfe24f145e0 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 24 Mar 2017 23:25:24 -0400 Subject: Add COMMENT and SECURITY LABEL support for publications and subscriptions --- src/backend/catalog/system_views.sql | 22 ++++++++++++++++++++++ src/backend/parser/gram.y | 4 ++++ 2 files changed, 26 insertions(+) (limited to 'src/backend') diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index b41882aa521..d8b762ee3fb 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -424,6 +424,28 @@ FROM WHERE l.objsubid = 0 UNION ALL +SELECT + l.objoid, l.classoid, l.objsubid, + 'publication'::text AS objtype, + NULL::oid AS objnamespace, + quote_ident(p.pubname) AS objname, + l.provider, l.label +FROM + pg_seclabel l + JOIN pg_publication p ON l.classoid = p.tableoid AND l.objoid = p.oid +WHERE + l.objsubid = 0 +UNION ALL +SELECT + l.objoid, l.classoid, 0::int4 AS objsubid, + 'subscription'::text AS objtype, + NULL::oid AS objnamespace, + quote_ident(s.subname) AS objname, + l.provider, l.label +FROM + pg_shseclabel l + JOIN pg_subscription s ON l.classoid = s.tableoid AND l.objoid = s.oid +UNION ALL SELECT l.objoid, l.classoid, 0::int4 AS objsubid, 'database'::text AS objtype, diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index bbcfc1fb4fd..19dd77d7877 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -6340,9 +6340,11 @@ comment_type_name: | EXTENSION { $$ = OBJECT_EXTENSION; } | FOREIGN DATA_P WRAPPER { $$ = OBJECT_FDW; } | opt_procedural LANGUAGE { $$ = OBJECT_LANGUAGE; } + | PUBLICATION { $$ = OBJECT_PUBLICATION; } | ROLE { $$ = OBJECT_ROLE; } | SCHEMA { $$ = OBJECT_SCHEMA; } | SERVER { $$ = OBJECT_FOREIGN_SERVER; } + | SUBSCRIPTION { $$ = OBJECT_SUBSCRIPTION; } | TABLESPACE { $$ = OBJECT_TABLESPACE; } ; @@ -6453,8 +6455,10 @@ security_label_type_name: DATABASE { $$ = OBJECT_DATABASE; } | EVENT TRIGGER { $$ = OBJECT_EVENT_TRIGGER; } | opt_procedural LANGUAGE { $$ = OBJECT_LANGUAGE; } + | PUBLICATION { $$ = OBJECT_PUBLICATION; } | ROLE { $$ = OBJECT_ROLE; } | SCHEMA { $$ = OBJECT_SCHEMA; } + | SUBSCRIPTION { $$ = OBJECT_SUBSCRIPTION; } | TABLESPACE { $$ = OBJECT_TABLESPACE; } ; -- cgit v1.2.3