mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Raise error on concurrent drop of partitioned index
We were already raising an error for DROP INDEX CONCURRENTLY on a partitioned table, albeit a different and confusing one: ERROR: DROP INDEX CONCURRENTLY must be first action in transaction Change that to throw a more comprehensible error: ERROR: cannot drop partitioned index \"%s\" concurrently Michael Paquier authored the test case for indexes on temporary partitioned tables. Backpatch to 11, where indexes on partitioned tables were added. Reported-by: Jan Mussler <jan.mussler@zalando.de> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/16594-d2956ca909585067@postgresql.org
This commit is contained in:
@ -1373,6 +1373,17 @@ RemoveRelations(DropStmt *drop)
|
||||
flags |= PERFORM_DELETION_CONCURRENTLY;
|
||||
}
|
||||
|
||||
/*
|
||||
* Concurrent index drop cannot be used with partitioned indexes,
|
||||
* either.
|
||||
*/
|
||||
if ((flags & PERFORM_DELETION_CONCURRENTLY) != 0 &&
|
||||
get_rel_relkind(relOid) == RELKIND_PARTITIONED_INDEX)
|
||||
ereport(ERROR,
|
||||
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||
errmsg("cannot drop partitioned index \"%s\" concurrently",
|
||||
rel->relname)));
|
||||
|
||||
/* OK, we're ready to delete this one */
|
||||
obj.classId = RelationRelationId;
|
||||
obj.objectId = relOid;
|
||||
|
Reference in New Issue
Block a user