Simon Riggs wrote: > Recent change: > > 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. > > Open cursors still have snapshots, so they would not be treated as idle > in transaction.
A backend is idle-in-transaction whenever a transaction is open and the backend is waiting for a command from the client. Whether it has active snapshots or open cursors doesn't affect that. > If the user has a held cursor then they can keep it, > since it has already read the database and released the snapshot. A held cursor can keep a temp file open. I suspect you missed the context of this change. It's about the code in tablespc.c, to kill all backends that might have a temporary file in a tablespace that's being dropped. It's not about tuple visibility but temporary files. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers