[Django] #32750: ExtractMonth from OuterRef in Subquery don't work

13 views
Skip to first unread message

Django

unread,
May 16, 2021, 6:21:08 AM5/16/21
to django-...@googlegroups.com
#32750: ExtractMonth from OuterRef in Subquery don't work
-------------------------------------+-------------------------------------
Reporter: | Owner: nobody
Chiorufarewerin |
Type: Bug | Status: assigned
Component: Database | Version: dev
layer (models, ORM) |
Severity: Normal | Keywords:
Triage Stage: | Has patch: 1
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
Just example code:

{{{
DTModel.objects.create(name='1', start_datetime=datetime(2000, 1, 1))
DTModel.objects.create(name='2', start_datetime=datetime(2001, 2, 5))
DTModel.objects.create(name='3', start_datetime=datetime(2002, 1, 7))
DTModel.objects.create(name='4', start_datetime=datetime(2003, 2, 8))

subquery_qs = DTModel.objects.filter(
name__in=['3', '4'],
start_datetime__month=ExtractMonth(OuterRef('start_datetime')),
)

qs = DTModel.objects.filter(name__in=['1', '2'])
qs = qs.annotate(related_name=Subquery(subquery_qs.values('name')[:1]))
}}}

This code raises where ExtractMonth(OuterRef('start_datetime')):
{{{
'ResolvedOuterRef' object has no attribute 'output_field'
}}}

It can be works with something like:

{{{
start_datetime__month=ExtractMonth(Func(OuterRef('start_datetime'),
function='', output_field=DateTimeField())),
}}}

Or if redefine class:
{{{
class ExtractMonthCustom(ExtractMonth):
def resolve_expression(self, *args, **kwargs):
return super(Extract, self).resolve_expression(*args, **kwargs)
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/32750>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
May 16, 2021, 6:28:56 AM5/16/21
to django-...@googlegroups.com
#32750: ExtractMonth from OuterRef in Subquery don't work
-------------------------------------+-------------------------------------
Reporter: Chiorufarewerin | Owner:

| Chiorufarewerin
Type: Bug | Status: assigned
Component: Database layer | Version: dev
(models, ORM) |
Severity: Normal | Resolution:
Keywords: | Triage Stage:
| Unreviewed
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Chiorufarewerin):

* owner: nobody => Chiorufarewerin


--
Ticket URL: <https://code.djangoproject.com/ticket/32750#comment:1>

Django

unread,
May 16, 2021, 10:13:13 AM5/16/21
to django-...@googlegroups.com
#32750: ExtractMonth from OuterRef in Subquery don't work
-------------------------------------+-------------------------------------
Reporter: Chiorufarewerin | Owner:

| Chiorufarewerin
Type: Bug | Status: assigned
Component: Database layer | Version: dev
(models, ORM) |
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Simon Charette):

* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/32750#comment:2>

Django

unread,
May 17, 2021, 6:24:58 AM5/17/21
to django-...@googlegroups.com
#32750: ExtractMonth from OuterRef in Subquery don't work
-------------------------------------+-------------------------------------
Reporter: Chiorufarewerin | Owner:

| Chiorufarewerin
Type: Bug | Status: assigned
Component: Database layer | Version: dev
(models, ORM) |
Severity: Normal | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* stage: Accepted => Ready for checkin


Comment:

[https://github.com/django/django/pull/14400 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/32750#comment:3>

Django

unread,
May 17, 2021, 2:00:59 PM5/17/21
to django-...@googlegroups.com
#32750: ExtractMonth from OuterRef in Subquery don't work
-------------------------------------+-------------------------------------
Reporter: Chiorufarewerin | Owner:
| Chiorufarewerin
Type: Bug | Status: closed

Component: Database layer | Version: dev
(models, ORM) |
Severity: Normal | Resolution: fixed

Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak <felisiak.mariusz@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"3954bf50fb814e7362e69f1020a747e601cc73fe" 3954bf50]:
{{{
#!CommitTicketReference repository=""
revision="3954bf50fb814e7362e69f1020a747e601cc73fe"
Fixed #32750 -- Fixed crash of Extract() transform on OuterRef()
expressions.

Thanks Simon Charette for the review.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/32750#comment:4>

Reply all
Reply to author
Forward
0 new messages