On Wednesday 25 November 2009 17:25:43 Tom Lane wrote:
> Simon Riggs <si...@2ndquadrant.com> writes:
> > An idle-in-transaction transaction can also hold a temporary file. Think
> > of an open cursor, for example. Therefore, remove the distinction
> > between CONFLICT_MODE_ERROR and CONFLICT_MODE_ERROR_IF_NOT_IDLE,
> > idle-in-transaction backends need to be killed too when a tablespace is
> > dropped.
> 
> Um ... I think you have forgotten about WITH HOLD cursors, which will
> also have temp files.  Implication: whatever you are thinking of here
> would require killing EVERY session.  Conclusion: you need a different
> design.
Actually WITH HOLD cursors should not pose a problem - the code already tries 
to handle that:

In fd.c:OpenTemporaryFile:

         * BUT: if the temp file is slated to outlive the current transaction,
         * force it into the database's default tablespace, so that it will not
         * pose a threat to possible tablespace drop attempts.
         */

Whether thats generally a good idea is another question.

Andres

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to