Opened 10 years ago
Last modified 10 years ago
#24770 closed Bug
Model instances are dropped by annotate when reverse foreign key is empty. — at Version 1
Reported by: | Ian Foote | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.8 |
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 (last modified by )
I ran across an odd interaction between annotate
, Sum
, Case
, When
and a reverse ForeignKey
. I've prepared a minimal testcase. I expect the Post
I created to be in the queryset
, annotated with 0
, but instead the queryset
is empty.
The query generated by the annotate looks like:
SELECT "bug_post"."id", "bug_post"."created", SUM(CASE WHEN "bug_comment"."created" > ("bug_post"."created") THEN 1 ELSE 0 END) AS "unread_comments" FROM "bug_post" INNER JOIN "bug_comment" ON ( "bug_post"."id" = "bug_comment"."post_id" ) GROUP BY "bug_post"."id", "bug_post"."created"
I initially ran into this on postgres, but my minimal testcase also shows it on sqlite.
Note:
See TracTickets
for help on using tickets.