Dear Nathan,

> I think you are correct.  I did it this way in v2.  I've also moved the
> bulk of the logic to logical/worker.c.

Thanks for updating! It becomes better. Further comments:

01. AlterSubscription()

```
+       LogicalRepWorkersWakeupAtCommit(subid);
+
```

Currently subids will be recorded even if the subscription is not modified.
I think LogicalRepWorkersWakeupAtCommit() should be called inside the if 
(update_tuple).

02. LogicalRepWorkersWakeupAtCommit()

```
+       oldcxt = MemoryContextSwitchTo(TopTransactionContext);
+       on_commit_wakeup_workers_subids = 
lappend_oid(on_commit_wakeup_workers_subids,
+                                                                               
                  subid);
```

If the subscription is altered twice in the same transaction, the same subid 
will be recorded twice.
I'm not sure whether it may be caused some issued, but list_member_oid() can be 
used to avoid that.


Best Regards,
Hayato Kuroda
FUJITSU LIMITED



Reply via email to