Opened 9 years ago
Closed 9 years ago
#25092 closed Cleanup/optimization (wontfix)
Inconsistency in Query.__str__ and actual query
Reported by: | Andriy Sokolovskiy | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
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
Inspired by http://stackoverflow.com/a/31287932/2116126
Different backends may quote or do something with params, so actual query diffs from the Query.__str__
, which is inconsistent.
I think Django should format params how backend actually do this to prevent confusion.
Change History (4)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
Well, I can investigate if it is feasible.
The point about "a basic representation of the query" seems strange for me. Why should we have a tool that differs from reality?
The practical thing is to have ability to get actual query without looking to logs.
comment:3 by , 9 years ago
As the linked ticket says, "There isn't [a way to get the actual query], because Django never actually interpolates the parameters: it sends the query and the parameters separately to the database adapter, which performs the appropriate operations."
comment:4 by , 9 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Feel free to reopen if you can come up with something more accurate than the current situation.
According to #17741,
str(query)
"isn't intended to give you valid SQL, just a basic representation of the query." Therefore, not sure it's feasible or practical to implement this.