If build_subscription_ddl_string is "internal" as its comment claims, why is it declared extern in ruleutils.h? I think it should be a static function instead. If you want to make it extern, it should live in src/backend/catalog/pg_subscription.c and its prototype in src/include/catalog/pg_subscription.h. And if you do move it to pg_subscription.c (but I don't necessarily agree with that), then you don't need a third copy of textarray_to_stringlist.
-- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/ "Find a bug in a program, and fix it, and the program will work today. Show the program how to find and fix a bug, and the program will work forever" (Oliver Silfridge)
