RE: Log a warning in pg_createsubscriber for max_slot_wal_keep_size

Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com>

From: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
To: 'Shubham Khanna' <khannashubham1197@gmail.com>
Cc: vignesh C <vignesh21@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Peter Smith <smithpb2250@gmail.com>
Date: 2025-01-09T07:16:37Z
Lists: pgsql-hackers
Dear Shubham,

Thanks for updating the patch. Few comments.

```
+#include "common/int.h"			/* include for strtoi64 */
```

I could build the source code without the inclusion. Can you remove?

```
+	max_slot_wal_keep_size = strtoi64(PQgetvalue(res, 0, 6), NULL, 0);
+
+	/* use strtoi64 to convert the string result to a 64-bit integer */
+	if (max_slot_wal_keep_size == 0 && errno != 0)
+	{
+		/* handle conversion error */
+		pg_log_error("Failed to convert max_slot_wal_keep_size to int64");
+	}
```

I'm not sure the error handling is really needed. pg_dump also uses the function and it does
not have such handlings.

```
+	pg_log_debug("publisher: max_slot_wal_keep_size: %ld",
+				 max_slot_wal_keep_size);
```

IIUC, "%ld" does not always represent int64 format. Since it is a debug message, isn't it enough to
use INT64_FORMAT macro?

```
+# Configure 'max_slot_wal_keep_size = 1' on the publisher and
+# reload configuration
+$node_p->append_conf('postgresql.conf', 'max_slot_wal_keep_size = 1');
+$node_p->reload;
```

Can you use 'max_slot_wal_keep_size = 10MB' or something to test the handling is correct?

Best regards,
Hayato Kuroda
FUJITSU LIMITED

Commits

  1. Raise a WARNING for max_slot_wal_keep_size in pg_createsubscriber.

  2. Improve grammar of options for command arrays in TAP tests