diff --git a/src/bin/scripts/t/100_vacuumdb.pl b/src/bin/scripts/t/100_vacuumdb.pl index eccfcc54a1..2e2863bce3 100644 --- a/src/bin/scripts/t/100_vacuumdb.pl +++ b/src/bin/scripts/t/100_vacuumdb.pl @@ -111,7 +111,9 @@ $node->safe_psql( INSERT INTO funcidx VALUES (0),(1),(2),(3); CREATE INDEX i0 ON funcidx ((f1(x))); CREATE SCHEMA "Foo"; - CREATE TABLE "Foo".bar(id int); + CREATE SCHEMA "Bar"; + CREATE TABLE "Foo".baz(id int); + CREATE TABLE "Bar".baz(id int); |); $node->command_ok([qw|vacuumdb -Z --table="need""q(uot"(")x") postgres|], 'column list'); @@ -157,12 +159,23 @@ $node->issues_sql_like( 'vacuumdb --table --min-xid-age'); $node->issues_sql_like( [ 'vacuumdb', '--schema', '"Foo"', 'postgres' ], - qr/VACUUM \(SKIP_DATABASE_STATS\) "Foo".bar/, + qr/VACUUM \(SKIP_DATABASE_STATS\) "Foo".baz/, 'vacuumdb --schema'); +$node->issues_sql_like( + [ 'vacuumdb', '--schema', '"Foo"', '--schema', '"Bar"', 'postgres' ], + qr/VACUUM\ \(SKIP_DATABASE_STATS\)\ "Foo".baz + .*VACUUM\ \(SKIP_DATABASE_STATS\)\ "Bar".baz + /sx, + 'vacuumdb multiple --schema switches'); $node->issues_sql_like( [ 'vacuumdb', '--exclude-schema', '"Foo"', 'postgres' ], - qr/(?:(?!VACUUM "Foo".bar).)*/, + qr/^(?!.*VACUUM \(SKIP_DATABASE_STATS\) "Foo".baz).*$/s, 'vacuumdb --exclude-schema'); +$node->issues_sql_like( + [ 'vacuumdb', '--exclude-schema', '"Foo"', '--exclude-schema', '"Bar"', 'postgres' ], + qr/^(?!.*VACUUM\ \(SKIP_DATABASE_STATS\)\ "Foo".baz + | VACUUM\ \(SKIP_DATABASE_STATS\)\ "Bar".baz).*$/sx, + 'vacuumdb multiple --exclude-schema switches'); $node->command_fails_like( [ 'vacuumdb', '-N', 'pg_catalog', '-t', 'pg_class', 'postgres', ], qr/cannot vacuum specific table\(s\) and exclude schema\(s\) at the same time/,