Remove assertion for ALTER TABLE .. DETACH PARTITION CONCURRENTLY
authorMichael Paquier <michael@paquier.xyz>
Wed, 22 Dec 2021 06:38:05 +0000 (15:38 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 22 Dec 2021 06:38:05 +0000 (15:38 +0900)
commit8a22a40b2cfd1ea3218663153e5c6d7ebc68d2bf
treee02f65ea5f057f873df40deb11b18ffedaaaf50c
parentf9a8bc9f27e6c7569f30fc86b82129647068f6a0
Remove assertion for ALTER TABLE .. DETACH PARTITION CONCURRENTLY

One code path related to this flavor of ALTER TABLE was checking that
the relation to detach has to be a normal table or a partitioned table,
which would fail if using the command with a different relation kind.

Views, sequences and materialized views cannot be part of a partition
tree, so these would cause the command to fail anyway, but the assertion
was triggered.  Foreign tables can be part of a partition tree, and
again the assertion would have failed.  The simplest solution is just to
remove this assertion, so as we get the same failure as the
non-concurrent code path.

While on it, add a regression test in postgres_fdw for the concurrent
partition detach of a foreign table, as per a suggestion from Alexander
Lakhin.

Issue introduced in 71f4c8c.

Reported-by: Alexander Lakhin
Author: Michael Paquier, Alexander Lakhin
Reviewed-by: Peter Eisentraut, Kyotaro Horiguchi
Discussion: https://postgr.es/m/17339-a9e09aaf38a3457a@postgresql.org
Backpatch-through: 14
contrib/postgres_fdw/expected/postgres_fdw.out
contrib/postgres_fdw/sql/postgres_fdw.sql
src/backend/commands/tablecmds.c