Remove assertion for ALTER TABLE .. DETACH PARTITION CONCURRENTLY
authorMichael Paquier <michael@paquier.xyz>
Wed, 22 Dec 2021 06:38:00 +0000 (15:38 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 22 Dec 2021 06:38:00 +0000 (15:38 +0900)
commit2e577c94466fde77d24cd44dc47059cf9cf392a4
tree3d5f69b185cd0f1d4e92c509a4cd97b7a625d7a1
parentcc8b25712b5ed8809048c7e209882bb0981214d6
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