On Mon, Mar 15, 2021 at 6:14 PM Ajin Cherian <itsa...@gmail.com> wrote: > > On Mon, Mar 15, 2021 at 2:04 PM Amit Kapila <amit.kapil...@gmail.com> wrote: >> >> I think something on these lines should be much >> easier than the spool-file implementation unless we see any problem >> with this idea. >> > > Here's a new patch-set that implements this new solution proposed by Amit.
Another couple of comments: 1) Should Assert be changed to the following in the below code: if (!HeapTupleIsValid(tup)) elog(ERROR, "cache lookup failed for subscription %u", MySubscription->oid); + rel = table_open(SubscriptionRelationId, RowExclusiveLock); + tup = SearchSysCacheCopy1(SUBSCRIPTIONOID, ObjectIdGetDatum(MySubscription->oid)); + Assert(HeapTupleIsValid(tup)); 2) table_states_not_ready global variable is used immediately after call to FetchTableStates, we can make FetchTableStates return the value or get it as an argument to the function and the global variables can be removed. +static List *table_states_not_ready = NIL; +static List *table_states_all = NIL; Regards, Vignesh