Hi Alvaro, Thanks for the explanation.
I tried to get rid of String usage in 0001 patch. Prepared 0002 patch for actual implementation of the function p_get_subscription_ddl(). Please find attached patches. Regards, Vaibhav On Fri, Nov 7, 2025 at 5:41 PM Álvaro Herrera <[email protected]> wrote: > On 2025-Nov-07, Vaibhav Dalvi wrote: > > > On Thu, Nov 6, 2025 at 9:18 PM Álvaro Herrera <[email protected]> > 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) >
v4-0001-Use-list-of-C-strings-for-publications.patch
Description: Binary data
v4-0002-Add-pg_get_subscription_ddl-function.patch
Description: Binary data
