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