Django

Code

Changeset 7798

Show
Ignore:
Timestamp:
06/30/08 05:25:35 (1 year ago)
Author:
mtredinnick
Message:

Fixed #2170 -- "exact" lookups in MySQL are now case-sensitive (the same as other backends).

This is a backwards incompatible change if you were relying on 'exact' being
case-insensitive. For that, you should be using 'iexact'.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/backends/mysql/base.py

    r7790 r7798  
    136136    ops = DatabaseOperations() 
    137137    operators = { 
    138         'exact': '= %s', 
     138        'exact': '= BINARY %s', 
    139139        'iexact': 'LIKE %s', 
    140140        'contains': 'LIKE BINARY %s', 
  • django/trunk/django/db/backends/mysql_old/base.py

    r7790 r7798  
    140140    ops = DatabaseOperations() 
    141141    operators = { 
    142         'exact': '= %s', 
     142        'exact': '= BINARY %s', 
    143143        'iexact': 'LIKE %s', 
    144144        'contains': 'LIKE BINARY %s', 
  • django/trunk/tests/regressiontests/string_lookup/models.py

    r7161 r7798  
    9898<Article: Article Test> 
    9999 
     100# Regression tests for #2170: test case sensitiveness 
     101>>> Article.objects.filter(text__exact='tHe qUick bRown fOx jUmps over tHe lazy dog.') 
     102[] 
     103>>> Article.objects.filter(text__iexact='tHe qUick bRown fOx jUmps over tHe lazy dog.') 
     104[<Article: Article Test>] 
     105 
    100106>>> Article.objects.get(text__contains='quick brown fox') 
    101107<Article: Article Test>