#36030: Rendering decimal to SQL is incoherent and leads to bugs. It relays on 
str
formating not type.
-------------------------------------+-------------------------------------
     Reporter:  Bartłomiej Nowak     |                    Owner:  (none)
         Type:  Bug                  |                   Status:  closed
    Component:  Database layer       |                  Version:  5.1
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:  needsinfo
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Comment (by Bartłomiej Nowak):

 I am using Postgres.

 {{{
 SomeModel.objects.create(some_field_of_type_int=2)
 sm = SomeModel.objects.annotate(x=F("some_field_of_type_int") /
 Decimal(3.0)).get()
 sm.x # returns 0
 }}}

 It will render Decimal of 3.0 to the query as 3 (INT). Because str(...)
 from Decimal(3.0) returns 3. (See cases at description)
 At python is not a problem, but at database it is, cus it breaks types.
 Calculation of two INTs at postgres, will return int as well, which is in
 this case 0, instead of 0.6666, which database would produce, if Django
 would render 3.0 instead of 3.

 Therefore, Django will return Decimal('0'), which I consider as Bug. This
 is not what anyone suppose to get.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36030#comment:3>
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 view this discussion visit 
https://groups.google.com/d/msgid/django-updates/01070193e481edcd-b5baae22-2f25-432d-a96e-246421936eb9-000000%40eu-central-1.amazonses.com.

Reply via email to