Tom Lane wrote:
> Log Message:
> -----------
> Add checks to TRUNCATE, CLUSTER, and REINDEX to prevent performing these
> operations when the current transaction has any open references to the
> target relation or index (implying it has an active query using the relation).
> The need for this was previously recognized in connection with ALTER TABLE,
> but anything that summarily eliminates tuples or moves them around would
> confuse an active scan.
>
> While this patch does not in itself fix bug #3883 (the deadlock would happen
> before the new check fires), it will discourage people from attempting the
> sequence of operations that creates a deadlock risk, so it's at least a
> partial response to that problem.
>
> In passing, add a previously-missing check to REINDEX to prevent trying to
> reindex another backend's temp table. This isn't a security problem since
> only a superuser would get past the schema permission checks, but if we are
> testing for this in other utility commands then surely REINDEX should too.
You want a TODO for 3883?
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://postgres.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +