Dear Sawada-san,

> When passing a non-existent publication name, the current behavior
> raises an error while the new behavior does nothing (i.e., the
> difference is calling GetPublicationByName() with missing_ok = true or
> false).

To confirm; It's because in PG18-, p.pubname was chosen from the pg_publication
in the publisher, but this patch the name list is taken from the subscriber, 
right?
If some publications are dropped on the publisher, the ERROR could be raised.

For the backward compatibility I suggest switching the policy based on the API
version. E.g.,

```
 static Datum
 pg_get_publication_tables(FunctionCallInfo fcinfo, ArrayType *pubnames,
-                                                 Oid target_relid)
+                                                 Oid target_relid, bool 
missing_ok)
...
@@ -1631,7 +1631,7 @@ Datum
 pg_get_publication_tables_a(PG_FUNCTION_ARGS)
 {
        /* Get the information of the tables in the given publications */
-       return pg_get_publication_tables(fcinfo, PG_GETARG_ARRAYTYPE_P(0), 
InvalidOid);
+       return pg_get_publication_tables(fcinfo, PG_GETARG_ARRAYTYPE_P(0), 
InvalidOid, false);
```

Another comment for publication.sql.

```
-- Clean up
DROP FUNCTION test_gpt(text, text);
```

It should be test_gpt(text[], text);

Best regards,
Hayato Kuroda
FUJITSU LIMITED

Reply via email to