Dear Hou,
Thanks for updating the patch. Here are comments for recent 0002.
Others are still being reviewed
01. pg_subscription_rel.h
```
+#include "nodes/primnodes.h"
```
The inclusion is not needed because the
02. typedefs.list
```
+SubscriptionRelKind
```
Missing update.
03. subscritioncmds.c
```
+#include "catalog/pg_sequence.h"
```
I could build without the inclusion. Can you remove?
04. check_publications_origin
```
+
+ query = "SELECT DISTINCT P.pubname AS pubname\n"
+ "FROM pg_publication P,\n"
+ " LATERAL %s GPR\n"
...
```
pgindent does not like the notation. How aboout chaning the line after the "="?
I.e.,
```
query =
"SELECT DISTINCT P.pubname AS pubname\n"
"FROM pg_publication P,\n"
" LATERAL %s GPR\n"
...
```
05. AddSubscriptionRelState
```
if (HeapTupleIsValid(tup))
elog(ERROR, "subscription table %u in subscription %u already exists",
relid, subid);
```
Theoretically subid might be the sequence, right? Should we say "relation"
instead of "table" as well?
06. AlterSubscription_refresh_seq
```
+ /* Get local relation list. */
```
In contrast can we say "sequence"?
07. check_publications_origin
```
if (res->status != WALRCV_OK_TUPLES)
ereport(ERROR,
(errcode(ERRCODE_CONNECTION_FAILURE),
errmsg("could not receive list of replicated tables from the publisher: %s",
res->err)));
```
Should we say "relations" instead of "tables"? Similar lines are:
```
/* Process tables. */
...
* Log a warning if the publisher has subscribed to the same table from
```
Best regards,
Hayato Kuroda
FUJITSU LIMITED