Opened 8 years ago
Closed 8 years ago
#28206 closed Bug (fixed)
Raw queries with Oracle impossible when using uppercase column names
Description ¶
When one has a model with a custom column name in uppercase, say:
class Man(Model): id = models.AutoField(primary_key=True, db_column="F_MAN_ID")
Then it is impossible to use RawQuerySets with this model on Oracle, you will always get the “InvalidQuery: Raw query must include the primary key” error.
The problem is that column_name_converter()
converts the column names to lowercase, so even if you use F_MAN_ID
in your query, the self.columns
list in the RawQuerySet instance will contain the lowercase column name. And because of case differences the f.column in self.columns
check in resolve_model_init_order
method will return False.
We are currently using Django 1.8 in production, but I looked at the Django code and it’s the same between 1.8 and 1.11, so I have put 1.11 into the Version field.
Change History (6)
by , 8 years ago
Attachment: | 28206.diff added |
---|
comment:1 by , 8 years ago
Keywords: | Oracle added |
---|---|
Triage Stage: | Unreviewed → Accepted |
Version: | 1.11 → master |
comment:2 by , 8 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:4 by , 8 years ago
Triage Stage: | Accepted → Ready for checkin |
---|
Test