﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
13906	REPEATABLE READ (as used by default on MySQL) breaks atleast QuerySet.get_or_create().	Sebastian Noack		MySQL is the only database supported by django, which support transactions but is using an other isolation level than READ COMMITED. MySQL is using REPEATABLE READ by default. That means that when you execute a select statement, the result set will be the same for all subsequent queries, selcting the same rows (even if no rows ere returned). This obviously breaks concurrent calls of QuerySet.get_or_create(). It is hard to writing code using transactions, running on multiple RDBMS using different isolation levels. So i suggest, to make the MySQL backend set the isolation level to READ COMMITTED on each new connection. And add a setting disabling this behaviour for those who really know what they are doing or those who have configured it already as global default in their MySQL server.	Cleanup/optimization	closed	Database layer (models, ORM)	dev	Normal	wontfix	mysql transaction isolation	graham@… tomasz.zielinski@… miloslav.pojman@… jim.dalton@… anssi.kaariainen@… David Gouldin clelland@… gerdemb mmitar@… TTimo cal@… django@…	Accepted	1	1	0	1	0	0
