From ea9cd5421382c047e2cc140bd6736b54ba660793 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Sat, 15 Sep 2007 21:39:05 +0000 Subject: [PATCH] queryset-refactor: Merged to [6198] git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6336 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/backends/oracle/base.py | 5 +++++ django/db/models/sql/where.py | 2 ++ 2 files changed, 7 insertions(+) diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py index 4093b69be6..76e5743539 100644 --- a/django/db/backends/oracle/base.py +++ b/django/db/backends/oracle/base.py @@ -400,6 +400,7 @@ class DatabaseWrapper(BaseDatabaseWrapper): 'istartswith': "LIKE UPPER(%s) ESCAPE '\\'", 'iendswith': "LIKE UPPER(%s) ESCAPE '\\'", } + oracle_version = None def _valid_connection(self): return self.connection is not None @@ -414,6 +415,10 @@ class DatabaseWrapper(BaseDatabaseWrapper): else: conn_string = "%s/%s@%s" % (settings.DATABASE_USER, settings.DATABASE_PASSWORD, settings.DATABASE_NAME) self.connection = Database.connect(conn_string, **self.options) + try: + self.oracle_version = int(self.connection.version.split('.')[0]) + except ValueError: + pass cursor = FormatStylePlaceholderCursor(self.connection) # Default arraysize of 1 is highly sub-optimal. cursor.arraysize = 100 diff --git a/django/db/models/sql/where.py b/django/db/models/sql/where.py index 527ce833fc..c2215105c3 100644 --- a/django/db/models/sql/where.py +++ b/django/db/models/sql/where.py @@ -131,6 +131,8 @@ class WhereNode(tree.Node): elif lookup_type in ('regex', 'iregex'): # FIXME: Factor this out in to conn.ops if settings.DATABASE_ENGINE == 'oracle': + if connection.oracle_version and connection.oracle_version <= 9: + raise NotImplementedError("Regexes are not supported in Oracle before version 10g.") if lookup_type == 'regex': match_option = 'c' else: