> On Thu, Nov 6, 2025 at 9:18 PM Álvaro Herrera <alvherre@kurilemu.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)