Opened 6 years ago

Closed 6 years ago

#19190 closed Cleanup/optimization (fixed)

Refactor and select_fields

Reported by: Anssi Kääriäinen Owned by: nobody
Component: Database layer (models, ORM) Version: master
Severity: Normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


I introduced some major gis regressions in commit [f64a5ef404cb6fd28e008a01039a3beea2fa8e1b] - a fix for #19102. The reason for the regressions was that and select_fields must be in sync, but this applies only to gis backend. The commit did: = [something]

while it should have done:, qs.select_fields = [something], [None]

The and select_fields must always be edited in sync for gis to work. There are not even comments explaining how select and select_fields work currently.

I have implemented a refactor for this which removes select_fields and collapses it into This way it will be impossible to do the same mistake I did in future.

It seems similar refactoring should be done for related_select_cols/related_select_fields.

Change History (5)

comment:1 Changed 6 years ago by Anssi Kääriäinen

I have pushed a commit to the branch to do similar collapsing for related_select_cols and related_select_fields.

comment:2 Changed 6 years ago by Aymeric Augustin

Triage Stage: UnreviewedAccepted

comment:3 Changed 6 years ago by Anssi Kääriäinen

Triage Stage: AcceptedReady for checkin

The branch has been rebased, and is now RFC.

comment:4 Changed 6 years ago by Alex Gaynor

django/contrib/gis/db/models/sql/ line 88, remove the zip

otherwise LGTM, please merge

comment:5 Changed 6 years ago by Anssi Kääriäinen <akaariai@…>

Resolution: fixed
Status: newclosed

In 11699ac4b5f98ec11dba02b356a8fd4ab6b4b889:

Fixed #19190 -- Refactored Query select clause attributes

The and Query.select_fields were collapsed into one list
because the attributes had to be always in sync. Now that they are in
one attribute it is impossible to edit them out of sync.

Similar collapse was done for Query.related_select_cols and

Note: See TracTickets for help on using tickets.
Back to Top