autocommit and Django
От | Daniele Varrazzo |
---|---|
Тема | autocommit and Django |
Дата | |
Msg-id | BANLkTimtv6y8=4Yjj0dK_-6_CAVq7adP5Q@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: autocommit and Django
Re: autocommit and Django |
Список | psycopg |
Hi, the connection.autocommit feature has created the problem shown here: https://code.djangoproject.com/ticket/16250 I've taken a look and they have a set_autocommit method <https://code.djangoproject.com/browser/django/trunk/django/db/backends/creation.py#L347> implemented in a painful way: instead of being driver-specific they just invoke some random method on the connection, and the thing is compounds with the fact they *don't even know* there is a transaction somehow already open. As per discussion <http://archives.postgresql.org/psycopg/2011-05/msg00033.php>, psycopg's set_session gives an error if invoked in a transaction. Now, I would love to argue that Django's set_autocommit is written with the wrong anatomical part, the bug is theirs and it's all their problem. However, knowing the painful process they use to fix a bug I wouldn't be surprised it would take months (see how they handled the idle in transaction mess) and this would only be a problem for django, postgres and psycopg users, as 2.4.2 is the version installed by default by easy_install and friends. So I'm positive to change the semantics of set_session/autocommit and issue an implicit rollback if in transaction instead of raising an exception, as set_isolation_level does. Thoughts? -- Daniele
В списке psycopg по дате отправления: