#28206: Raw queries with Oracle impossible when using uppercase column names
-------------------------------------+-------------------------------------
               Reporter:  mitya57    |          Owner:  nobody
                   Type:  Bug        |         Status:  new
              Component:  Database   |        Version:  1.11
  layer (models, ORM)                |
               Severity:  Normal     |       Keywords:
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 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.

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

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/050.58536b2c3039ce5a1d98ebdcf32c5f57%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to