#22321 closed Bug (fixed)
Missing DB errors wrapping around _set_autocommit
Reported by: | Alexander Koshelev | Owned by: | Aymeric Augustin |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description
Implementation defined _set_autocommit
function can raise DatabaseError
that will not be wrapped and converted to unified exception class by caller in BaseDatabaseWrapper.set_autocommit
.
Change History (9)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
Summary: | Missing DB errors wraping around _set_autocommit → Missing DB errors wrapping around _set_autocommit |
---|
comment:3 by , 11 years ago
Has patch: | set |
---|---|
Owner: | changed from | to
Status: | new → assigned |
Triage Stage: | Unreviewed → Accepted |
Type: | Uncategorized → Bug |
It turns out that I was working in this area today. See https://github.com/django/django/pull/2468.
comment:4 by , 11 years ago
Looks good but I don't understand why we cannot wrap exceptions in the one place – BaseDatabaseWrapper.set_autocommit
?
comment:5 by , 11 years ago
For consistency. If you look at the rest of the class, database-level methods are prefixed with an underscore and that's where this handling belongs.
If a database adapter implementation autocommit in such a way that _set_autocommit couldn't raise an exception, it wouldn't need the exception wrapping (but that's a rather theoretical argument).
comment:7 by , 11 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Problem is located here – https://github.com/django/django/blob/master/django/db/backends/__init__.py#L277