Opened 11 years ago
Last modified 10 years ago
#22683 closed Cleanup/optimization
Schema tests and .extra queryset method — at Initial Version
Reported by: | Maximiliano Robaina | Owned by: | nobody |
---|---|---|---|
Component: | Migrations | Version: | 1.7-beta-2 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Running schema tests I caught an issue, more precisely, in test_add_field_default_transform.
At the end, this test method is doing:
self.assertEqual(Author.objects.extra(where=thing = 1).count(), 2)
The problem here is what in this where clause, the "thing" field must be quoted.
In firebird :
SELECT * FROM AUTHOR WHERE thing = 1 <-- Here thing (in lowercase) and THING (in uppercase) are equivalent, are the same object
is different of:
SELECT * FROM AUTHOR WHERE "thing" = 1 <-- field is quoted
For a more generic test I think we need to avoid use .extra method or another raw sql statement.
For a more complete discussion about it, see at
https://groups.google.com/forum/?hl=es#!topic/django-developers/KRHD77KlZ28