| From: | Álvaro Herrera <alvherre(at)kurilemu(dot)de> |
|---|---|
| To: | Vaibhav Dalvi <vaibhav(dot)dalvi(at)enterprisedb(dot)com> |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: [PATCH] Add pg_get_subscription_ddl() function |
| Date: | 2025-11-07 12:11:44 |
| Message-ID: | 202511071210.c2j4i2jfwfe4@alvherre.pgsql |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 2025-Nov-07, Vaibhav Dalvi wrote:
> On Thu, Nov 6, 2025 at 9:18 PM Álvaro Herrera <alvherre(at)kurilemu(dot)de> wrote:
>
> > Hello Vaibhav,
> >
> > I wonder why is Subscription->publications a list of String rather than
> > a list of C strings. That's something you'd see in a Node structure,
> > but Subscription is not a node, so this seems wasteful and pointless.
> >
>
> I looked more into this and came to know that we can't make
> Subscription->publications a list of C strings because input publications
> list is also in the list of String from the parser:
>
> CreateSubscriptionStmt:
> CREATE SUBSCRIPTION name CONNECTION Sconst PUBLICATION name_list
> opt_definition
> {
> CreateSubscriptionStmt *n =
> makeNode(CreateSubscriptionStmt);
> n->subname = $3;
> n->conninfo = $5;
> n->publication = $7;
> n->options = $8;
> $$ = (Node *) n;
> };
But this is a CreateSubscriptionStmt (which is indeed a Node), not a
Subscription (which isn't). Different thing.
--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
"In fact, the basic problem with Perl 5's subroutines is that they're not
crufty enough, so the cruft leaks out into user-defined code instead, by
the Conservation of Cruft Principle." (Larry Wall, Apocalypse 6)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Akshay Joshi | 2025-11-07 12:20:52 | Re: [PATCH] Add pg_get_policy_ddl() function to reconstruct CREATE POLICY statement |
| Previous Message | Rahila Syed | 2025-11-07 12:09:57 | Re: Extend injection_points_attach() to accept a user-defined function |