agora inbox for pgsql-hackers@postgresql.org
help / color / mirror / Atom feedcomment/security label for publication/subscription
5+ messages / 5 participants
[nested] [flat]
* comment/security label for publication/subscription
@ 2017-03-24 04:18 Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
2017-03-24 20:52 ` Re: comment/security label for publication/subscription Robert Haas <robertmhaas@gmail.com>
2026-08-08 17:35 ` Re: [HACKERS] comment/security label for publication/subscription Andres Freund <andres@anarazel.de>
0 siblings, 2 replies; 5+ messages in thread
From: Peter Eisentraut @ 2017-03-24 04:18 UTC (permalink / raw)
To: pgsql-hackers
Here is a patch to add COMMENT support for publications and subscriptions.
On a similar issue, do we need SECURITY LABEL support for those? Does
that make sense?
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Attachments:
[invalid/octet-stream] 0001-Add-COMMENT-support-for-publications-and-subscriptio.patch (5.8K, ../../5c69fd52-ca00-3dd2-444c-a0b5e673136b@2ndquadrant.com/2-0001-Add-COMMENT-support-for-publications-and-subscriptio.patch)
download | inline diff:
From e1fbef4e28e2b83c77ef86e0ec05fa548a2c0998 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Fri, 24 Mar 2017 00:15:41 -0400
Subject: [PATCH] Add COMMENT support for publications and subscriptions
---
doc/src/sgml/ref/comment.sgml | 2 ++
src/backend/parser/gram.y | 16 ++++++++++++++++
src/test/regress/expected/publication.out | 7 +++++++
src/test/regress/expected/subscription.out | 7 +++++++
src/test/regress/sql/publication.sql | 3 +++
src/test/regress/sql/subscription.sql | 4 ++++
6 files changed, 39 insertions(+)
diff --git a/doc/src/sgml/ref/comment.sgml b/doc/src/sgml/ref/comment.sgml
index 7483c8c03f..21d8894dc3 100644
--- a/doc/src/sgml/ref/comment.sgml
+++ b/doc/src/sgml/ref/comment.sgml
@@ -46,11 +46,13 @@
OPERATOR FAMILY <replaceable class="PARAMETER">object_name</replaceable> USING <replaceable class="parameter">index_method</replaceable> |
POLICY <replaceable class="PARAMETER">policy_name</replaceable> ON <replaceable class="PARAMETER">table_name</replaceable> |
[ PROCEDURAL ] LANGUAGE <replaceable class="PARAMETER">object_name</replaceable> |
+ PUBLICATION <replaceable class="PARAMETER">object_name</replaceable> |
ROLE <replaceable class="PARAMETER">object_name</replaceable> |
RULE <replaceable class="PARAMETER">rule_name</replaceable> ON <replaceable class="PARAMETER">table_name</replaceable> |
SCHEMA <replaceable class="PARAMETER">object_name</replaceable> |
SEQUENCE <replaceable class="PARAMETER">object_name</replaceable> |
SERVER <replaceable class="PARAMETER">object_name</replaceable> |
+ SUBSCRIPTION <replaceable class="PARAMETER">object_name</replaceable> |
TABLE <replaceable class="PARAMETER">object_name</replaceable> |
TABLESPACE <replaceable class="PARAMETER">object_name</replaceable> |
TEXT SEARCH CONFIGURATION <replaceable class="PARAMETER">object_name</replaceable> |
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 82844a0399..7b812c02ec 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -6225,6 +6225,14 @@ CommentStmt:
n->comment = $8;
$$ = (Node *) n;
}
+ | COMMENT ON PUBLICATION name IS comment_text
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+ n->objtype = OBJECT_PUBLICATION;
+ n->object = (Node *) makeString($4);
+ n->comment = $6;
+ $$ = (Node *) n;
+ }
| COMMENT ON RULE name ON any_name IS comment_text
{
CommentStmt *n = makeNode(CommentStmt);
@@ -6233,6 +6241,14 @@ CommentStmt:
n->comment = $8;
$$ = (Node *) n;
}
+ | COMMENT ON SUBSCRIPTION name IS comment_text
+ {
+ CommentStmt *n = makeNode(CommentStmt);
+ n->objtype = OBJECT_SUBSCRIPTION;
+ n->object = (Node *) makeString($4);
+ n->comment = $6;
+ $$ = (Node *) n;
+ }
| COMMENT ON TRANSFORM FOR Typename LANGUAGE name IS comment_text
{
CommentStmt *n = makeNode(CommentStmt);
diff --git a/src/test/regress/expected/publication.out b/src/test/regress/expected/publication.out
index 5a7c0edf7d..0964718a60 100644
--- a/src/test/regress/expected/publication.out
+++ b/src/test/regress/expected/publication.out
@@ -6,6 +6,13 @@ CREATE ROLE regress_publication_user2;
CREATE ROLE regress_publication_user_dummy LOGIN NOSUPERUSER;
SET SESSION AUTHORIZATION 'regress_publication_user';
CREATE PUBLICATION testpub_default;
+COMMENT ON PUBLICATION testpub_default IS 'test publication';
+SELECT obj_description(p.oid, 'pg_publication') FROM pg_publication p;
+ obj_description
+------------------
+ test publication
+(1 row)
+
CREATE PUBLICATION testpib_ins_trunct WITH (nopublish delete, nopublish update);
ALTER PUBLICATION testpub_default WITH (nopublish insert, nopublish delete);
\dRp
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index 0912bef657..f8d12797e2 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -24,6 +24,13 @@ ERROR: invalid connection string syntax: missing "=" after "testconn" in connec
CREATE SUBSCRIPTION testsub CONNECTION 'dbname=doesnotexist' PUBLICATION testpub WITH (NOCONNECT);
WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
+COMMENT ON SUBSCRIPTION testsub IS 'test subscription';
+SELECT obj_description(s.oid, 'pg_subscription') FROM pg_subscription s;
+ obj_description
+-------------------
+ test subscription
+(1 row)
+
\dRs+
List of subscriptions
Name | Owner | Enabled | Publication | Conninfo
diff --git a/src/test/regress/sql/publication.sql b/src/test/regress/sql/publication.sql
index cff9931a77..85530bec0e 100644
--- a/src/test/regress/sql/publication.sql
+++ b/src/test/regress/sql/publication.sql
@@ -8,6 +8,9 @@ CREATE ROLE regress_publication_user_dummy LOGIN NOSUPERUSER;
CREATE PUBLICATION testpub_default;
+COMMENT ON PUBLICATION testpub_default IS 'test publication';
+SELECT obj_description(p.oid, 'pg_publication') FROM pg_publication p;
+
CREATE PUBLICATION testpib_ins_trunct WITH (nopublish delete, nopublish update);
ALTER PUBLICATION testpub_default WITH (nopublish insert, nopublish delete);
diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql
index c1199ee629..e9d1eab8f8 100644
--- a/src/test/regress/sql/subscription.sql
+++ b/src/test/regress/sql/subscription.sql
@@ -21,6 +21,10 @@ CREATE SUBSCRIPTION testsub CONNECTION 'testconn' PUBLICATION testpub;
CREATE SUBSCRIPTION testsub CONNECTION 'dbname=doesnotexist' PUBLICATION testpub WITH (NOCONNECT);
+COMMENT ON SUBSCRIPTION testsub IS 'test subscription';
+SELECT obj_description(s.oid, 'pg_subscription') FROM pg_subscription s;
+
+
\dRs+
ALTER SUBSCRIPTION testsub SET PUBLICATION testpub2, testpub3 NOREFRESH;
--
2.12.1
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: comment/security label for publication/subscription
2017-03-24 04:18 comment/security label for publication/subscription Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
@ 2017-03-24 20:52 ` Robert Haas <robertmhaas@gmail.com>
2017-03-24 20:56 ` Re: comment/security label for publication/subscription Stephen Frost <sfrost@snowman.net>
1 sibling, 1 reply; 5+ messages in thread
From: Robert Haas @ 2017-03-24 20:52 UTC (permalink / raw)
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>; +Cc: pgsql-hackers
On Fri, Mar 24, 2017 at 12:18 AM, Peter Eisentraut
<peter.eisentraut@2ndquadrant.com> wrote:
> Here is a patch to add COMMENT support for publications and subscriptions.
>
> On a similar issue, do we need SECURITY LABEL support for those? Does
> that make sense?
IMHO, it's good to have COMMENT and SECURITY LABEL support for pretty
much everything.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: comment/security label for publication/subscription
2017-03-24 04:18 comment/security label for publication/subscription Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
2017-03-24 20:52 ` Re: comment/security label for publication/subscription Robert Haas <robertmhaas@gmail.com>
@ 2017-03-24 20:56 ` Stephen Frost <sfrost@snowman.net>
0 siblings, 0 replies; 5+ messages in thread
From: Stephen Frost @ 2017-03-24 20:56 UTC (permalink / raw)
To: Robert Haas <robertmhaas@gmail.com>; +Cc: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>; pgsql-hackers
* Robert Haas (robertmhaas@gmail.com) wrote:
> On Fri, Mar 24, 2017 at 12:18 AM, Peter Eisentraut
> <peter.eisentraut@2ndquadrant.com> wrote:
> > Here is a patch to add COMMENT support for publications and subscriptions.
> >
> > On a similar issue, do we need SECURITY LABEL support for those? Does
> > that make sense?
>
> IMHO, it's good to have COMMENT and SECURITY LABEL support for pretty
> much everything.
+1
Thanks!
Stephen
Attachments:
[application/pgp-signature] signature.asc (818B, ../../20170324205626.GS9812@tamriel.snowman.net/2-signature.asc)
download
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: [HACKERS] comment/security label for publication/subscription
2017-03-24 04:18 comment/security label for publication/subscription Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
@ 2026-08-08 17:35 ` Andres Freund <andres@anarazel.de>
2026-08-12 02:31 ` Re: [HACKERS] comment/security label for publication/subscription Chao Li <li.evan.chao@gmail.com>
1 sibling, 1 reply; 5+ messages in thread
From: Andres Freund @ 2026-08-08 17:35 UTC (permalink / raw)
To: Peter Eisentraut <peter@eisentraut.org>; +Cc: pgsql-hackers
Hi,
On 2017-03-24 00:18:26 -0400, Peter Eisentraut wrote:
> Here is a patch to add COMMENT support for publications and subscriptions.
>
> On a similar issue, do we need SECURITY LABEL support for those? Does
> that make sense?
It looks like this was committed (87dee41f3ed).
Unfortunately I found, during an investigation of something completely
independent, that it leads to comments and (and presumably security labels) to
be orphaned on DROP.
In fact, our regression database actually contains such an orphaned comment:
regression[1536656][1]=# SELECT * FROM pg_description WHERE classoid = 'pg_subscription'::regclass;
┌────────┬──────────┬──────────┬───────────────────┐
│ objoid │ classoid │ objsubid │ description │
├────────┼──────────┼──────────┼───────────────────┤
│ 123718 │ 6100 │ 0 │ test subscription │
└────────┴──────────┴──────────┴───────────────────┘
(1 row)
Seems we need to beef up oidjoins.sql to find orphaned objects.
I can't entirely blame this commit, it seems pretty cruddy that the drop
routine of every global object needs to have a synchronized copy of various
Delete* routines. It's bad enough that drop functions for global objects need
to know about having to drop dependencies manually, but copying the set of
objects that need to be dropped in each seems like a bad idea.
Trivial repro:
DROP SUBSCRIPTION IF EXISTS s;
CREATE SUBSCRIPTION s CONNECTION '' PUBLICATION p
WITH (connect = false, slot_name = NONE);
COMMENT ON SUBSCRIPTION s IS 'leaked';
DROP SUBSCRIPTION s;
SELECT * FROM pg_description WHERE classoid = 'pg_subscription'::regclass;
Which will show something like:
┌────────┬──────────┬──────────┬─────────────┐
│ objoid │ classoid │ objsubid │ description │
├────────┼──────────┼──────────┼─────────────┤
│ 116868 │ 6100 │ 0 │ leaked │
└────────┴──────────┴──────────┴─────────────┘
Greetings,
Andres Freund
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: [HACKERS] comment/security label for publication/subscription
2017-03-24 04:18 comment/security label for publication/subscription Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
2026-08-08 17:35 ` Re: [HACKERS] comment/security label for publication/subscription Andres Freund <andres@anarazel.de>
@ 2026-08-12 02:31 ` Chao Li <li.evan.chao@gmail.com>
0 siblings, 0 replies; 5+ messages in thread
From: Chao Li @ 2026-08-12 02:31 UTC (permalink / raw)
To: Andres Freund <andres@anarazel.de>; +Cc: Peter Eisentraut <peter@eisentraut.org>; pgsql-hackers
> On Aug 9, 2026, at 01:35, Andres Freund <andres@anarazel.de> wrote:
>
> Hi,
>
> On 2017-03-24 00:18:26 -0400, Peter Eisentraut wrote:
>> Here is a patch to add COMMENT support for publications and subscriptions.
>>
>> On a similar issue, do we need SECURITY LABEL support for those? Does
>> that make sense?
>
> It looks like this was committed (87dee41f3ed).
>
> Unfortunately I found, during an investigation of something completely
> independent, that it leads to comments and (and presumably security labels) to
> be orphaned on DROP.
>
> In fact, our regression database actually contains such an orphaned comment:
>
> regression[1536656][1]=# SELECT * FROM pg_description WHERE classoid = 'pg_subscription'::regclass;
> ┌────────┬──────────┬──────────┬───────────────────┐
> │ objoid │ classoid │ objsubid │ description │
> ├────────┼──────────┼──────────┼───────────────────┤
> │ 123718 │ 6100 │ 0 │ test subscription │
> └────────┴──────────┴──────────┴───────────────────┘
> (1 row)
>
> Seems we need to beef up oidjoins.sql to find orphaned objects.
>
>
> I can't entirely blame this commit, it seems pretty cruddy that the drop
> routine of every global object needs to have a synchronized copy of various
> Delete* routines. It's bad enough that drop functions for global objects need
> to know about having to drop dependencies manually, but copying the set of
> objects that need to be dropped in each seems like a bad idea.
>
>
> Trivial repro:
>
> DROP SUBSCRIPTION IF EXISTS s;
>
> CREATE SUBSCRIPTION s CONNECTION '' PUBLICATION p
> WITH (connect = false, slot_name = NONE);
> COMMENT ON SUBSCRIPTION s IS 'leaked';
> DROP SUBSCRIPTION s;
>
> SELECT * FROM pg_description WHERE classoid = 'pg_subscription'::regclass;
>
> Which will show something like:
> ┌────────┬──────────┬──────────┬─────────────┐
> │ objoid │ classoid │ objsubid │ description │
> ├────────┼──────────┼──────────┼─────────────┤
> │ 116868 │ 6100 │ 0 │ leaked │
> └────────┴──────────┴──────────┴─────────────┘
>
>
> Greetings,
>
> Andres Freund
>
I just debugged the code. Dropping a publication uses the generic deleteOneObject() path, so that comment, security label etc. dependencies are deleted automatically. While for some reason, doDeletion() explicitly reject subscription:
```
/*
* These global object types are not supported here.
*/
case AuthIdRelationId:
case DatabaseRelationId:
case TableSpaceRelationId:
case SubscriptionRelationId:
case ParameterAclRelationId:
elog(ERROR, "global objects cannot be deleted by doDeletion");
break;
```
Therefore, DropSubscription() has to perform the cleanup explicitly. I guess that is why commit 87dee41f3ed missed adding the deletion of comments and security labels to DropSubscription().
I have prepared a patch to fix the bug. The fix is straightforward, and I have added tests for both comments and security labels.
Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
Attachments:
[application/octet-stream] v1-0001-Remove-comments-and-security-labels-when-dropping.patch (5.4K, ../../161F06DD-8892-403C-97DC-1322250A04E3@gmail.com/2-v1-0001-Remove-comments-and-security-labels-when-dropping.patch)
download | inline diff:
From b675cb8a0fa4dcc9dd2800c95fa70d4fc3c673f3 Mon Sep 17 00:00:00 2001
From: "Chao Li (Evan)" <lic@highgo.com>
Date: Wed, 12 Aug 2026 07:50:12 +0800
Subject: [PATCH v1] Remove comments and security labels when dropping
subscriptions
Commit 87dee41f3ed added comment and security label support for
subscriptions, but overlooked cleaning them up in DROP SUBSCRIPTION.
Since subscriptions do not use the generic dependency deletion machinery,
their comments and security labels must be removed explicitly. Otherwise,
orphaned entries remain in pg_description and pg_shseclabel.
Add regression coverage for both cases.
Author: Chao Li <lic@highgo.com>
---
src/backend/commands/subscriptioncmds.c | 6 +++++-
.../dummy_seclabel/expected/dummy_seclabel.out | 17 +++++++++++++++++
.../dummy_seclabel/sql/dummy_seclabel.sql | 7 +++++++
src/test/regress/expected/subscription.out | 8 ++++++++
src/test/regress/sql/subscription.sql | 4 ++++
5 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c
index 8e8db08bd93..49b485d0f56 100644
--- a/src/backend/commands/subscriptioncmds.c
+++ b/src/backend/commands/subscriptioncmds.c
@@ -33,8 +33,10 @@
#include "catalog/pg_subscription_rel.h"
#include "catalog/pg_type.h"
#include "catalog/pg_user_mapping.h"
+#include "commands/comment.h"
#include "commands/defrem.h"
#include "commands/event_trigger.h"
+#include "commands/seclabel.h"
#include "commands/subscriptioncmds.h"
#include "commands/tablecmds.h"
#include "executor/executor.h"
@@ -2769,9 +2771,11 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel)
/* Drop subscription's conflict log table */
drop_sub_conflict_log_table(subid, subname, subconflictlogrelid);
- /* Clean up dependencies */
+ /* Clean up dependencies, comments, and security labels. */
deleteDependencyRecordsFor(SubscriptionRelationId, subid, false);
deleteSharedDependencyRecordsFor(SubscriptionRelationId, subid, 0);
+ DeleteComments(subid, SubscriptionRelationId, 0);
+ DeleteSecurityLabel(&myself);
/* Remove any associated relation synchronization states. */
RemoveSubscriptionRel(subid, InvalidOid);
diff --git a/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out b/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out
index de671e5a170..88cb477eb4f 100644
--- a/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out
+++ b/src/test/modules/dummy_seclabel/expected/dummy_seclabel.out
@@ -116,8 +116,25 @@ NOTICE: event ddl_command_end: SECURITY LABEL
DROP EVENT TRIGGER always_start, always_end, always_drop, always_rewrite;
DROP VIEW dummy_seclabel_view1;
DROP TABLE dummy_seclabel_tbl1, dummy_seclabel_tbl2;
+-- Check that dropping objects removes their security labels.
DROP SUBSCRIPTION dummy_sub;
+SELECT count(*) = 0 AS no_subscription_labels
+FROM pg_shseclabel
+WHERE classoid = 'pg_subscription'::regclass;
+ no_subscription_labels
+------------------------
+ t
+(1 row)
+
DROP PUBLICATION dummy_pub;
+SELECT count(*) = 0 AS no_publication_labels
+FROM pg_seclabel
+WHERE classoid = 'pg_publication'::regclass;
+ no_publication_labels
+-----------------------
+ t
+(1 row)
+
DROP ROLE regress_dummy_seclabel_user1;
DROP ROLE regress_dummy_seclabel_user2;
DROP ROLE regress_dummy_seclabel_user3;
diff --git a/src/test/modules/dummy_seclabel/sql/dummy_seclabel.sql b/src/test/modules/dummy_seclabel/sql/dummy_seclabel.sql
index 649409757e8..5c5e56283d7 100644
--- a/src/test/modules/dummy_seclabel/sql/dummy_seclabel.sql
+++ b/src/test/modules/dummy_seclabel/sql/dummy_seclabel.sql
@@ -112,8 +112,15 @@ DROP EVENT TRIGGER always_start, always_end, always_drop, always_rewrite;
DROP VIEW dummy_seclabel_view1;
DROP TABLE dummy_seclabel_tbl1, dummy_seclabel_tbl2;
+-- Check that dropping objects removes their security labels.
DROP SUBSCRIPTION dummy_sub;
+SELECT count(*) = 0 AS no_subscription_labels
+FROM pg_shseclabel
+WHERE classoid = 'pg_subscription'::regclass;
DROP PUBLICATION dummy_pub;
+SELECT count(*) = 0 AS no_publication_labels
+FROM pg_seclabel
+WHERE classoid = 'pg_publication'::regclass;
DROP ROLE regress_dummy_seclabel_user1;
DROP ROLE regress_dummy_seclabel_user2;
diff --git a/src/test/regress/expected/subscription.out b/src/test/regress/expected/subscription.out
index fbb2751c678..a9f1c546fab 100644
--- a/src/test/regress/expected/subscription.out
+++ b/src/test/regress/expected/subscription.out
@@ -357,6 +357,14 @@ ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE);
BEGIN;
DROP SUBSCRIPTION regress_testsub;
COMMIT;
+SELECT count(*) = 0 AS no_subscription_comments
+FROM pg_description
+WHERE classoid = 'pg_subscription'::regclass;
+ no_subscription_comments
+--------------------------
+ t
+(1 row)
+
DROP SUBSCRIPTION IF EXISTS regress_testsub;
NOTICE: subscription "regress_testsub" does not exist, skipping
DROP SUBSCRIPTION regress_testsub; -- fail
diff --git a/src/test/regress/sql/subscription.sql b/src/test/regress/sql/subscription.sql
index cfeebaf9302..e864b58a526 100644
--- a/src/test/regress/sql/subscription.sql
+++ b/src/test/regress/sql/subscription.sql
@@ -279,6 +279,10 @@ BEGIN;
DROP SUBSCRIPTION regress_testsub;
COMMIT;
+SELECT count(*) = 0 AS no_subscription_comments
+FROM pg_description
+WHERE classoid = 'pg_subscription'::regclass;
+
DROP SUBSCRIPTION IF EXISTS regress_testsub;
DROP SUBSCRIPTION regress_testsub; -- fail
--
2.50.1 (Apple Git-155)
=
^ permalink raw reply [nested|flat] 5+ messages in thread
end of thread, other threads:[~2026-08-12 02:31 UTC | newest]
Thread overview: 5+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2017-03-24 04:18 comment/security label for publication/subscription Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
2017-03-24 20:52 ` Robert Haas <robertmhaas@gmail.com>
2017-03-24 20:56 ` Stephen Frost <sfrost@snowman.net>
2026-08-08 17:35 ` Andres Freund <andres@anarazel.de>
2026-08-12 02:31 ` Chao Li <li.evan.chao@gmail.com>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox