﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
23680	DecimalField and Postgres ORM produces incorrect SQL on filter comparison	David Burke	nobody	"Create a DecimalField like


{{{
max_grade = models.DecimalField(max_digits=5, decimal_places=2)
}}}


Set the field. Run a filter like


{{{
In [11]: GradeScaleRule.objects.get(id=1).max_grade
Out[11]: Decimal('59.99')
In [12]: GradeScaleRule.objects.filter(max_grade=59.99)
Out[12]: []
In [13]: GradeScaleRule.objects.filter(max_grade=Decimal(59.99))
Out[13]: []
}}}


Here is the sql generated.


{{{
SELECT ""sis_gradescalerule"".""id"", ""sis_gradescalerule"".""min_grade"", ""sis_gradescalerule"".""max_grade"", ""sis_gradescalerule"".""letter_grade"", ""sis_gradescalerule"".""numeric_scale"", ""sis_gradescalerule"".""grade_scale_id"" FROM ""sis_gradescalerule"" WHERE ""sis_gradescalerule"".""max_grade"" = 59.99000000000000198951966012828052043914794921875
}}}


Here is a psql statement showing the 59.99 max_grade is saved correctly.


{{{
postgres=# select * from sis_gradescalerule;
 id | min_grade | max_grade | letter_grade | numeric_scale | grade_scale_id 
----+-----------+-----------+--------------+---------------+----------------
  1 |     50.00 |     59.99 | F            |          1.00 |              1
}}}


The ORM code works fine with sqlite."	Bug	closed	Database layer (models, ORM)	1.6	Normal	invalid			Unreviewed	0	0	0	0	0	0
