mirror of
https://github.com/postgres/postgres.git
synced 2025-10-29 22:49:41 +03:00
Improve test in 009_matviews.pl.
Ensure that the target table on the subscriber exists before executing any DML intended for replication. Currently, if the table is missing, the replication logic keeps retrying until the table is eventually created by the test. Although this behaviour does not cause test failures, since the table is created after the INSERT is published and replication eventually succeeds, however, it introduces unnecessary looping and delays. Author: Grem Snoort <grem.snoort@gmail.com> Discussion: https://postgr.es/m/CANV9Qw5HD7=Fp4nox2O7DoVctHoabRRVW9Soo4A=QipqW5B=Tg@mail.gmail.com
This commit is contained in:
@@ -18,20 +18,20 @@ $node_subscriber->start;
|
||||
|
||||
my $publisher_connstr = $node_publisher->connstr . ' dbname=postgres';
|
||||
|
||||
$node_publisher->safe_psql('postgres',
|
||||
q{CREATE TABLE test1 (a int PRIMARY KEY, b text)});
|
||||
$node_subscriber->safe_psql('postgres',
|
||||
q{CREATE TABLE test1 (a int PRIMARY KEY, b text);});
|
||||
|
||||
$node_publisher->safe_psql('postgres',
|
||||
"CREATE PUBLICATION mypub FOR ALL TABLES;");
|
||||
$node_subscriber->safe_psql('postgres',
|
||||
"CREATE SUBSCRIPTION mysub CONNECTION '$publisher_connstr' PUBLICATION mypub;"
|
||||
);
|
||||
|
||||
$node_publisher->safe_psql('postgres',
|
||||
q{CREATE TABLE test1 (a int PRIMARY KEY, b text)});
|
||||
$node_publisher->safe_psql('postgres',
|
||||
q{INSERT INTO test1 (a, b) VALUES (1, 'one'), (2, 'two');});
|
||||
|
||||
$node_subscriber->safe_psql('postgres',
|
||||
q{CREATE TABLE test1 (a int PRIMARY KEY, b text);});
|
||||
|
||||
$node_publisher->wait_for_catchup('mysub');
|
||||
|
||||
# Materialized views are not supported by logical replication, but
|
||||
|
||||
Reference in New Issue
Block a user