Re: row filtering for logical replication

Поиск
Список
Период
Сортировка
От Peter Smith
Тема Re: row filtering for logical replication
Дата
Msg-id CAHut+Pvxy=Okx2k6+FyBK4WPZdsO5R3NFPBoXtO15fs2PAWLKw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: row filtering for logical replication  (vignesh C <vignesh21@gmail.com>)
Список pgsql-hackers
On Thu, Dec 2, 2021 at 7:40 PM vignesh C <vignesh21@gmail.com> wrote:
>
...
>
> 2) testpub5 and testpub_syntax2 are similar, one of them can be removed:
> +SET client_min_messages = 'ERROR';
> +CREATE PUBLICATION testpub5 FOR TABLE testpub_rf_tbl1,
> testpub_rf_tbl2 WHERE (c <> 'test' AND d < 5);
> +RESET client_min_messages;
> +\dRp+ testpub5
>
> +SET client_min_messages = 'ERROR';
> +CREATE PUBLICATION testpub_syntax2 FOR TABLE testpub_rf_tbl1,
> testpub_rf_myschema.testpub_rf_tbl5 WHERE (h < 999);
> +RESET client_min_messages;
> +\dRp+ testpub_syntax2
> +DROP PUBLICATION testpub_syntax2;
>

To re-confirm my original motivation for adding the syntax2 test I
coded some temporary logging into the different PublicationObjSpec
cases. After I re-ran the regression tests, here are some extracts
from the postmaster.log:

(for testpub5)
2022-01-14 13:06:32.149 AEDT client backend[21853]
pg_regress/publication LOG:  !!> TABLE relation_expr OptWhereClause
2022-01-14 13:06:32.149 AEDT client backend[21853]
pg_regress/publication STATEMENT:  CREATE PUBLICATION testpub5 FOR
TABLE testpub_rf_tbl1, testpub_rf_tbl2 WHERE (c <> 'test' AND d < 5)
WITH (publish = 'insert');
2022-01-14 13:06:32.149 AEDT client backend[21853]
pg_regress/publication LOG:  !!> ColId OptWhereClause
2022-01-14 13:06:32.149 AEDT client backend[21853]
pg_regress/publication STATEMENT:  CREATE PUBLICATION testpub5 FOR
TABLE testpub_rf_tbl1, testpub_rf_tbl2 WHERE (c <> 'test' AND d < 5)
WITH (publish = 'insert');

(for syntax2)
2022-01-14 13:06:32.186 AEDT client backend[21853]
pg_regress/publication LOG:  !!> TABLE relation_expr OptWhereClause
2022-01-14 13:06:32.186 AEDT client backend[21853]
pg_regress/publication STATEMENT:  CREATE PUBLICATION testpub_syntax2
FOR TABLE testpub_rf_tbl1, testpub_rf_schema1.testpub_rf_tbl5 WHERE (h
< 999) WITH (publish = 'insert');
2022-01-14 13:06:32.186 AEDT client backend[21853]
pg_regress/publication LOG:  !!> ColId indirection OptWhereClause
2022-01-14 13:06:32.186 AEDT client backend[21853]
pg_regress/publication STATEMENT:  CREATE PUBLICATION testpub_syntax2
FOR TABLE testpub_rf_tbl1, testpub_rf_schema1.testpub_rf_tbl5 WHERE (h
< 999) WITH (publish = 'insert');

From those logs you can see although the SQLs looked to be similar
they actually take different PublicationObjSpec execution paths in the
gram.y: i.e. " ColId OptWhereClause" Versus " ColId indirection
OptWhereClause"

~~

So this review comment can be skipped. Both tests should be retained.

------
Kind Regards,
Peter Smith.
Fujitsu Australia



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Julien Rouhaud
Дата:
Сообщение: Re: drop tablespace failed when location contains .. on win32
Следующее
От: "Tim McNamara"
Дата:
Сообщение: New developer papercut - Makefile references INSTALL