RE: Make default subscription streaming option as Parallel

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

From: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
To: 'Amit Kapila' <amit.kapila16@gmail.com>, vignesh C <vignesh21@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-10-22T10:54:15Z
Lists: pgsql-hackers
Dear Amit, Vignesh,

> 1. Please ensure that none of the existing tests that use
> subscriptions with large changes will be impacted due to this change.

I found at least 022_twophase_cascade.pl should be fixed.
The file has a part which tests non-streaming case:

```
# -----------------------
# 2PC NON-STREAMING TESTS
# -----------------------
...
$node_B->safe_psql(
	'postgres', "
	CREATE SUBSCRIPTION tap_sub_B
	CONNECTION '$node_A_connstr application_name=$appname_B'
	PUBLICATION tap_pub_A
	WITH (two_phase = on)");
...
```

I know the streaming actually does not happen because few tuples will be inserted
later, but creating as streaming=parallel is bit misleading.

I checked other files as well but I couldn't find what we should fix.

> 2. The pg_createsubscriber utility uses CREATE SUBSCRIPTION statement
> and after this change, it will enable parallel mode by default which I
> think is a good idea as users won't need to do that manually after
> running the tool. Do you see any problem with this?

I also think it is okay. IIUC, there were no specific reasons to create
subscriptions with streaming=off, it was chosen because it was a default.
I cannot find strong reasons to keep current behavior.

Best regards,
Hayato Kuroda
FUJITSU LIMITED

Commits

  1. Change the default value of the streaming option to 'parallel'.