Fix table lock levels for REINDEX INDEX CONCURRENTLY

Peter Eisentraut <peter@eisentraut.org>

Commit: add85ead4ab969c1e31d64f4476c2335856f4aa9
Author: Peter Eisentraut <peter@eisentraut.org>
Date: 2019-05-08T12:30:23Z
Releases: 12.0
Fix table lock levels for REINDEX INDEX CONCURRENTLY

REINDEX CONCURRENTLY locks tables with ShareUpdateExclusiveLock rather
than the ShareLock used by a plain REINDEX.  However,
RangeVarCallbackForReindexIndex() was not updated for that and still
used the ShareLock only.  This would lead to lock upgrades later,
leading to possible deadlocks.

Reported-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://www.postgresql.org/message-id/flat/20190430151735.wi52sxjvxsjvaxxt%40alap3.anarazel.de

Files

PathChange+/−
src/backend/commands/indexcmds.c modified +33 −12

Discussion