Opened 12 years ago
Closed 12 years ago
#19190 closed Cleanup/optimization (fixed)
Refactor sql.query.select and select_fields
Reported by: | Anssi Kääriäinen | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
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 |
Description
I introduced some major gis regressions in commit [f64a5ef404cb6fd28e008a01039a3beea2fa8e1b] - a fix for #19102. The reason for the regressions was that Query.select and select_fields must be in sync, but this applies only to gis backend. The commit did:
qs.select = [something]
while it should have done:
qs.select, qs.select_fields = [something], [None]
The qs.select 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 qs.select. 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 by , 12 years ago
comment:2 by , 12 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:3 by , 12 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
The branch has been rebased, and is now RFC.
comment:4 by , 12 years ago
django/contrib/gis/db/models/sql/compiler.py
: line 88, remove the zip
otherwise LGTM, please merge
comment:5 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I have pushed a commit to the branch to do similar collapsing for related_select_cols and related_select_fields.