Skip to content

Commit

Permalink
queryset-refactor: Fixed some errors in Oracle regex handling that were
Browse files Browse the repository at this point in the history
introduced in [7087]. Patch from Ian Kelly. Fixed #7065.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7444 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
malcolmt committed Apr 23, 2008
1 parent 5a9a208 commit 382d31a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
13 changes: 10 additions & 3 deletions django/db/backends/oracle/base.py
Expand Up @@ -119,10 +119,17 @@ def regex_lookup_9(self, lookup_type):

def regex_lookup_10(self, lookup_type):
if lookup_type == 'regex':
match_option = 'c'
match_option = "'c'"
else:
match_option = 'i'
return 'REGEXP_LIKE(%%s %%s %s)' % match_option
match_option = "'i'"
return 'REGEXP_LIKE(%%s, %%s, %s)' % match_option

def regex_lookup(self, lookup_type):
# If regex_lookup is called before it's been initialized, then create
# a cursor to initialize it and recur.
from django.db import connection
connection.cursor()
return connection.ops.regex_lookup(lookup_type)

def sql_flush(self, style, tables, sequences):
# Return a list of 'TRUNCATE x;', 'TRUNCATE y;',
Expand Down
2 changes: 1 addition & 1 deletion django/db/models/sql/where.py
Expand Up @@ -140,7 +140,7 @@ def make_atom(self, child, qn):
elif lookup_type == 'search':
return (connection.ops.fulltext_search_sql(field_sql), params)
elif lookup_type in ('regex', 'iregex'):
return connection.ops.regex_lookup % (field_sql, cast_sql), params
return connection.ops.regex_lookup(lookup_type) % (field_sql, cast_sql), params

raise TypeError('Invalid lookup_type: %r' % lookup_type)

Expand Down

0 comments on commit 382d31a

Please sign in to comment.