[Django] #32951: Remove Query.where_class in favor of using WhereNode directly.

33 views
Skip to first unread message

Django

unread,
Jul 20, 2021, 10:44:26 AM7/20/21
to django-...@googlegroups.com
#32951: Remove Query.where_class in favor of using WhereNode directly.
-------------------------------------+-------------------------------------
Reporter: Nick Pope | Owner: Nick Pope
Type: | Status: assigned
Cleanup/optimization |
Component: Database | Version: dev
layer (models, ORM) | Keywords: wherenode,
Severity: Normal | where_class
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
#6261 added support for customized `WhereNode` and `QUERY_TERMS`.

This was to "get GeoDjango working with the queryset-refactor branch" as
it required a custom `GeoWhereNode` and being able to extend geographic
lookup types.

`QUERY_TERMS` was removed in 244cc401559e924355cf943b6b8e66ccf2f6da3a for
Django 2.1 with the intended replacement being the Lookup Registration
API.

`GeoWhereNode` was removed in 3caf957ed5eaa831a485abcb89f27266dbf3e82b for
Django 1.8, obsoleted by `GISLookup`.

`Query.where_class` is internal and undocumented and is propagated around
through other methods signatures, e.g. `.get_extra_restriction()`, which
is also internal and undocumented. We should be able to remove this no
longer necessary complexity and use `WhereNode` directly.

Despite these being undocumented APIs, I don't know whether we want to go
through a deprecation period?

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

Django

unread,
Jul 20, 2021, 10:47:02 AM7/20/21
to django-...@googlegroups.com
#32951: Remove Query.where_class in favor of using WhereNode directly.
-------------------------------------+-------------------------------------
Reporter: Nick Pope | Owner: Nick Pope
Type: | Status: assigned
Cleanup/optimization |
Component: Database layer | Version: dev
(models, ORM) |
Severity: Normal | Resolution:
Keywords: wherenode, | Triage Stage:
where_class | Unreviewed
Has patch: 1 | Needs documentation: 0

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

* has_patch: 0 => 1


Comment:

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

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

Django

unread,
Jul 20, 2021, 2:14:19 PM7/20/21
to django-...@googlegroups.com
#32951: Remove Query.where_class in favor of using WhereNode directly.
-------------------------------------+-------------------------------------
Reporter: Nick Pope | Owner: Nick Pope
Type: | Status: assigned
Cleanup/optimization |
Component: Database layer | Version: dev
(models, ORM) |
Severity: Normal | Resolution:
Keywords: wherenode, | Triage Stage: Accepted
where_class |
Has patch: 1 | Needs documentation: 0

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

* stage: Unreviewed => Accepted


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

Django

unread,
Jul 21, 2021, 7:33:25 AM7/21/21
to django-...@googlegroups.com
#32951: Remove Query.where_class in favor of using WhereNode directly.
-------------------------------------+-------------------------------------
Reporter: Nick Pope | Owner: Nick Pope
Type: | Status: assigned
Cleanup/optimization |
Component: Database layer | Version: dev
(models, ORM) |
Severity: Normal | Resolution:
Keywords: wherenode, | Triage Stage: Ready for
where_class | 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


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

Django

unread,
Jul 22, 2021, 3:41:22 AM7/22/21
to django-...@googlegroups.com
#32951: Remove Query.where_class in favor of using WhereNode directly.
-------------------------------------+-------------------------------------
Reporter: Nick Pope | Owner: Nick Pope
Type: | Status: closed

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

Keywords: wherenode, | Triage Stage: Ready for
where_class | 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:"c35b81b864ffa84751bac7d73046840f576491f9" c35b81b8]:
{{{
#!CommitTicketReference repository=""
revision="c35b81b864ffa84751bac7d73046840f576491f9"
Fixed #32951 -- Removed Query.where_class & co.

Unused since 3caf957ed5eaa831a485abcb89f27266dbf3e82b.
}}}

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

Reply all
Reply to author
Forward
0 new messages