mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	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
			
			
This commit is contained in:
		@@ -15013,8 +15013,6 @@ MarkInheritDetached(Relation child_rel, Relation parent_rel)
 | 
			
		||||
	HeapTuple	inheritsTuple;
 | 
			
		||||
	bool		found = false;
 | 
			
		||||
 | 
			
		||||
	Assert(child_rel->rd_rel->relkind == RELKIND_RELATION ||
 | 
			
		||||
		   child_rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE);
 | 
			
		||||
	Assert(parent_rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE);
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user