Documented that case-insensitive matching is not supported for non-ASCII

strings in SQLite. Refs #9905.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9705 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2009-01-06 03:34:47 +00:00
parent 0c08368116
commit 3b489b7742
2 changed files with 47 additions and 2 deletions

View File

@ -265,6 +265,26 @@ of whether ``unique=True`` is specified or not.
SQLite notes SQLite notes
============ ============
SQLite_ provides an excellent development alternative for applications that
are predominantly read-only or require a smaller installation footprint. As
with all database servers, though, there are some differences that are
specific to SQLite that you should be aware of.
.. _SQLite: http://www.sqlite.org/
.. _sqlite-string-matching:
String matching for non-ASCII strings
--------------------------------------
SQLite doesn't support case-insensitive matching for non-ASCII strings. Some
possible workarounds for this are `documented at sqlite.org`_, but they are
not utilised by the default SQLite backend in Django. Therefore, if you are
using the ``iexact`` lookup type in your queryset filters, be aware that it
will not work as expected for non-ASCII strings.
.. _documented at sqlite.org: http://www.sqlite.org/faq.html#q18
Versions prior to 3.3.6 Versions prior to 3.3.6
------------------------ ------------------------

View File

@ -986,8 +986,15 @@ SQL equivalent::
SELECT ... WHERE name ILIKE 'beatles blog'; SELECT ... WHERE name ILIKE 'beatles blog';
Note this will match ``'Beatles Blog'``, ``'beatles blog'``, Note this will match ``'Beatles Blog'``, ``'beatles blog'``, ``'BeAtLes
``'BeAtLes BLoG'``, etc. BLoG'``, etc.
.. admonition:: SQLite users
When using the SQLite backend and Unicode (non-ASCII) strings, bear in
mind the :ref:`database note <sqlite-string-matching>` about string
comparisons. SQLite does not do case-insensitive matching for Unicode
strings.
contains contains
~~~~~~~~ ~~~~~~~~
@ -1021,6 +1028,12 @@ SQL equivalent::
SELECT ... WHERE headline ILIKE '%Lennon%'; SELECT ... WHERE headline ILIKE '%Lennon%';
.. admonition:: SQLite users
When using the SQLite backend and Unicode (non-ASCII) strings, bear in
mind the :ref:`database note <sqlite-string-matching>` about string
comparisons.
in in
~~ ~~
@ -1133,6 +1146,12 @@ SQL equivalent::
SELECT ... WHERE headline ILIKE 'Will%'; SELECT ... WHERE headline ILIKE 'Will%';
.. admonition:: SQLite users
When using the SQLite backend and Unicode (non-ASCII) strings, bear in
mind the :ref:`database note <sqlite-string-matching>` about string
comparisons.
endswith endswith
~~~~~~~~ ~~~~~~~~
@ -1162,6 +1181,12 @@ SQL equivalent::
SELECT ... WHERE headline ILIKE '%will' SELECT ... WHERE headline ILIKE '%will'
.. admonition:: SQLite users
When using the SQLite backend and Unicode (non-ASCII) strings, bear in
mind the :ref:`database note <sqlite-string-matching>` about string
comparisons.
range range
~~~~~ ~~~~~