On Wed, Nov 16, 2011 at 4:55 PM, Shai Berger <s...@platonix.com> wrote:
> Hi,
>
> Oracle 10 has been released in 2003 -- the same year as Python 2.3, which is
> no longer supported by Django.
>
> Oracle 9 is essentially end-of-life'd -- Oracle will not provide patches for
> it, even for critical bugs, and even if you pay extra. This is since July
> 2010, according to
> http://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf
>
> Support for Oracle 9 is a very minor thing in the backend code itself -- only
> a handful of lines -- but these lines execute a command on the backend to get
> the server version, at every connection, and our data indicates this command
> does affect performance. You might expect that it just looks up a constant,
> but in fact it is a stored procedure that looks in several places to calculate
> not just the software version, but also the interface compliance level.
>
> In the backend, the version info is only used to tell if we're still on 9. If
> we drop 9 support, we don't need that anymore.
>
> For the benefit of those who need to know the version (e.g. 3rd-party code
> which uses specific Oracle 11 features), I propose we change oracle_version
> from an attribute on the connection that is filled at connection time, to a
> property that proxies the cx-oracle connection property. That property is
> memoized (at the connection-object level) anyway, so for code that relies on
> it, the only difference would be in when the server statements are executed,
> while for the rest (most?) of us, the statements will just not be run.
>
> So -- can we drop Oracle 9? Should I open a ticket for it?

-0.  This isn't really like deprecating old Python versions, which is
necessary to keep the codebase unified while gaining access to new
features.  We have a certain subset of SQL that we need to be
supported by a backend, and that subset doesn't grow very quickly.
Django works on Oracle 9 with the one exception of regex query
filters, and that status is unlikely to change with new Oracle
versions.  The main reason to drop Oracle 9 support would be to
support more recent features, and I'm not aware of anything
particularly compelling for use by Django.

I would also want to poll the community before dropping support, to
verify that few users are still using Oracle 9 with Django.  We still
have some Oracle 9 databases where I work, although none running
Django at this point.  I've even (recently) heard of organizations
still stuck on Oracle 8.

The version check that you point out does not really need to be done
on every connection, I think.  If we make a connection and find one
version and then later make a new connection using the same
DatabaseWrapper, we expect the database to still be the same version.
I would propose that instead of dropping support, we make this check
once per DatabaseWrapper per thread, in the same way that the LIKE
operators are already configured.

Cheers,
Ian

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to