#34969 closed Cleanup/optimization (duplicate)

Documentation is misleading about SQL equivalent

Reported by: Piotr Kotarba Owned by: nobody
Component: Documentation Version: 3.2
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Below misleading has been checked for 3.2, but I assume it might also apply for all remaining version up to 4.2(not checked).

Documentation says:

Code highlighting:

  **Example:**
Blog.objects.get(name__iexact="beatles blog")
Blog.objects.get(name__iexact=None)

**SQL equivalents:**
SELECT ... WHERE name ILIKE 'beatles blog';
SELECT ... WHERE name IS NULL;

Based on a code of Django itself I have found out that not every backend uses ILIKE.
For example postgresql or Oracle uses UPPER:

Code highlighting:

class DatabaseWrapper(BaseDatabaseWrapper):
  vendor = 'oracle'
  display_name = 'Oracle'
  _standard_operators = {
      'exact': '= %s',
      'iexact': '= UPPER(%s)',
    ... }

You can check that under:
django.db.backends.oracle.base.DatabaseWrapper

Change History (1)

comment:1 by Mariusz Felisiak, 12 months ago

Resolution: duplicate
Status: newclosed
Type: UncategorizedCleanup/optimization

Duplicate of #20775.

Note: See TracTickets for help on using tickets.
Back to Top