summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2014-08-01 12:53:18 -0400
committerTim Graham <timograham@gmail.com>2014-08-01 19:32:00 -0400
commit8f9d6e83a005901bc2a368a28017ee52a8c081f8 (patch)
tree0cdd6b7269cb380cb1ddf41acd357e75f12d5a7d
parenta2479f46f3d05b37254ad701b6b76f84624d3cb5 (diff)
Fixed #23145 -- Dropped support for Oracle < 11.1
-rw-r--r--django/db/backends/oracle/base.py26
-rw-r--r--docs/ref/contrib/gis/install/index.txt2
-rw-r--r--docs/ref/databases.txt7
-rw-r--r--docs/releases/1.8.txt7
4 files changed, 13 insertions, 29 deletions
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index de28ec21b5..47726e76af 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -359,22 +359,13 @@ WHEN (new.%(col_name)s IS NULL)
def random_function_sql(self):
return "DBMS_RANDOM.RANDOM"
- def regex_lookup_9(self, lookup_type):
- raise NotImplementedError("Regexes are not supported in Oracle before version 10g.")
-
- def regex_lookup_10(self, lookup_type):
+ def regex_lookup(self, lookup_type):
if lookup_type == 'regex':
match_option = "'c'"
else:
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.
- with self.connection.cursor():
- return self.connection.ops.regex_lookup(lookup_type)
-
def return_insert_id(self):
return "RETURNING %s INTO %%s", (InsertIdVar(),)
@@ -646,15 +637,6 @@ class DatabaseWrapper(BaseDatabaseWrapper):
self.operators = self._standard_operators
cursor.close()
- # There's no way for the DatabaseOperations class to know the
- # currently active Oracle version, so we do some setups here.
- # TODO: Multi-db support will need a better solution (a way to
- # communicate the current version).
- if self.oracle_version is not None and self.oracle_version <= 9:
- self.ops.regex_lookup = self.ops.regex_lookup_9
- else:
- self.ops.regex_lookup = self.ops.regex_lookup_10
-
try:
self.connection.stmtcachesize = 20
except AttributeError:
@@ -713,11 +695,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
def is_usable(self):
try:
- if hasattr(self.connection, 'ping'): # Oracle 10g R2 and higher
- self.connection.ping()
- else:
- # Use a cx_Oracle cursor directly, bypassing Django's utilities.
- self.connection.cursor().execute("SELECT 1 FROM DUAL")
+ self.connection.ping()
except Database.Error:
return False
else:
diff --git a/docs/ref/contrib/gis/install/index.txt b/docs/ref/contrib/gis/install/index.txt
index d96dbe80e9..8b7f9a0cf4 100644
--- a/docs/ref/contrib/gis/install/index.txt
+++ b/docs/ref/contrib/gis/install/index.txt
@@ -63,7 +63,7 @@ Database Library Requirements Supported Versions Notes
================== ============================== ================== =========================================
PostgreSQL GEOS, PROJ.4, PostGIS 9.0+ Requires PostGIS.
MySQL GEOS 5.x Not OGC-compliant; :ref:`limited functionality <mysql-spatial-limitations>`.
-Oracle GEOS 10.2, 11 XE not supported; not tested with 9.
+Oracle GEOS 11.1+ XE not supported.
SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.6.+ Requires SpatiaLite 2.3+, pysqlite2 2.5+
================== ============================== ================== =========================================
diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt
index 8fae1138fe..a4d5eb2deb 100644
--- a/docs/ref/databases.txt
+++ b/docs/ref/databases.txt
@@ -695,10 +695,9 @@ you add quotes where necessary before copying a query into an SQLite shell.
Oracle notes
============
-Django supports `Oracle Database Server`_ versions 9i and
-higher. Oracle version 10g or later is required to use Django's
-``regex`` and ``iregex`` query operators. You will also need at least
-version 4.3.1 of the `cx_Oracle`_ Python driver.
+Django supports `Oracle Database Server`_ versions 11.1 and higher. Version
+4.3.1 or higher of the `cx_Oracle`_ Python driver is required, although we
+recommend version 5.1.3 or later as these versions support Python 3.
Note that due to a Unicode-corruption bug in ``cx_Oracle`` 5.0, that
version of the driver should **not** be used with Django;
diff --git a/docs/releases/1.8.txt b/docs/releases/1.8.txt
index 858d02c4bf..b3b44637b6 100644
--- a/docs/releases/1.8.txt
+++ b/docs/releases/1.8.txt
@@ -407,6 +407,13 @@ officially supports.
This also includes dropping support for PostGIS 1.3 and 1.4 as these versions
are not supported on versions of PostgreSQL later than 8.4.
+Support for Oracle versions older than 11.1
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The end of upstream support periods was reached in July 2010 for Oracle 9.2,
+January 2012 for Oracle 10.1, and July 2013 for Oracle 10.2. As a consequence,
+Django 1.8 sets 11.1 as the minimum Oracle version it officially supports.
+
``AbstractUser.last_login`` allows null values
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~