From 3b489b77429aacd05a66c2158edc4f21209aecb9 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Tue, 6 Jan 2009 03:34:47 +0000 Subject: [PATCH] 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 --- docs/ref/databases.txt | 20 ++++++++++++++++++++ docs/ref/models/querysets.txt | 29 +++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 0b5a819898..e553651ef3 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -265,6 +265,26 @@ of whether ``unique=True`` is specified or not. 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 ------------------------ diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 2334cf0754..be78f85969 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -986,8 +986,15 @@ SQL equivalent:: SELECT ... WHERE name ILIKE 'beatles blog'; -Note this will match ``'Beatles Blog'``, ``'beatles blog'``, -``'BeAtLes BLoG'``, etc. +Note this will match ``'Beatles Blog'``, ``'beatles blog'``, ``'BeAtLes +BLoG'``, etc. + +.. admonition:: SQLite users + + When using the SQLite backend and Unicode (non-ASCII) strings, bear in + mind the :ref:`database note ` about string + comparisons. SQLite does not do case-insensitive matching for Unicode + strings. contains ~~~~~~~~ @@ -1021,6 +1028,12 @@ SQL equivalent:: 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 ` about string + comparisons. + in ~~ @@ -1133,6 +1146,12 @@ SQL equivalent:: 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 ` about string + comparisons. + endswith ~~~~~~~~ @@ -1162,6 +1181,12 @@ SQL equivalent:: 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 ` about string + comparisons. + range ~~~~~