aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2017-03-24 23:25:24 -0400
committerPeter Eisentraut <peter_e@gmx.net>2017-03-24 23:44:23 -0400
commit87dee41f3ed6d6c2a93e7ff359776cfe24f145e0 (patch)
tree6f559ffd90d1c71ff3fc8efcf6ad3dc4f72f78ab /src/backend
parent7678fe1c6dd532f5f85a768c97b75dc40072c8e4 (diff)
downloadpostgresql-87dee41f3ed6d6c2a93e7ff359776cfe24f145e0.tar.gz
postgresql-87dee41f3ed6d6c2a93e7ff359776cfe24f145e0.zip
Add COMMENT and SECURITY LABEL support for publications and subscriptions
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/catalog/system_views.sql22
-rw-r--r--src/backend/parser/gram.y4
2 files changed, 26 insertions, 0 deletions
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
@@ -425,6 +425,28 @@ 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,
NULL::oid AS objnamespace,
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; }
;