Opened 8 years ago
Closed 8 years ago
#28023 closed Bug (invalid)
Wrong method in SQL query log
Reported by: | Erki Bender | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.11 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
When SQL query logging is enabled and you run a following:
n = now() - timedelta(days=30) MyModel.objects.filter(my_date__lt=n).delete()
Query being logged is:
2017-04-05 11:41:22,192 DEBUG (0.019) QUERY = 'SELECT "MY_MODEL"."ID", "MY_MODEL"."MY_DATE" FROM "MY_MODEL" WHERE "MY_MODEL"."MY_DATE" < :arg0' - PARAMS = (Oracle_datetime(2017, 3, 6, 8, 41, 21, 913366),); args=(Oracle_datetime(2017, 3, 6, 8, 41, 21, 913366),)
The same behaviour happens with 1.10.* version of Django as well.
Change History (2)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
This is caused by a combination of two things:
- You have a
pre_delete
/post_delete
signal registered for yourMyModel
or foreign keys pointing to it so Django doesn't perform aDELETE FROM
right away and collects objects matching yourfilter()
in memory to simulateON DELETE
. - No
MyModel
match your filter no the collection routine stops right away and doesn't both performing aDELETE FROM
.
Note:
See TracTickets
for help on using tickets.
I don't see this. Here is the model i used and query i performed
Is this bug related to some particular backend or does this bug also result in failure of the
delete()
method ?Does your object get deleted or not ?