Fixed #19968 -- Dropped support for PostgreSQL < 8.4.
This commit is contained in:
parent
9dc5702932
commit
6197935152
|
@ -9,7 +9,7 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|||
super(DatabaseOperations, self).__init__(connection)
|
||||
|
||||
def date_extract_sql(self, lookup_type, field_name):
|
||||
# http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT
|
||||
# http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT
|
||||
if lookup_type == 'week_day':
|
||||
# For consistency across backends, we return Sunday=1, Saturday=7.
|
||||
return "EXTRACT('dow' FROM %s) + 1" % field_name
|
||||
|
@ -34,7 +34,7 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|||
return '(%s)' % conn.join([sql, 'interval \'%s\'' % mods])
|
||||
|
||||
def date_trunc_sql(self, lookup_type, field_name):
|
||||
# http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC
|
||||
# http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC
|
||||
return "DATE_TRUNC('%s', %s)" % (lookup_type, field_name)
|
||||
|
||||
def datetime_extract_sql(self, lookup_type, field_name, tzname):
|
||||
|
@ -43,7 +43,7 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|||
params = [tzname]
|
||||
else:
|
||||
params = []
|
||||
# http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT
|
||||
# http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT
|
||||
if lookup_type == 'week_day':
|
||||
# For consistency across backends, we return Sunday=1, Saturday=7.
|
||||
sql = "EXTRACT('dow' FROM %s) + 1" % field_name
|
||||
|
@ -57,7 +57,7 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|||
params = [tzname]
|
||||
else:
|
||||
params = []
|
||||
# http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC
|
||||
# http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC
|
||||
sql = "DATE_TRUNC('%s', %s)" % (lookup_type, field_name)
|
||||
return sql, params
|
||||
|
||||
|
@ -178,17 +178,6 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|||
def prep_for_iexact_query(self, x):
|
||||
return x
|
||||
|
||||
def check_aggregate_support(self, aggregate):
|
||||
"""Check that the backend fully supports the provided aggregate.
|
||||
|
||||
The implementation of population statistics (STDDEV_POP and VAR_POP)
|
||||
under Postgres 8.2 - 8.2.4 is known to be faulty. Raise
|
||||
NotImplementedError if this is the database in use.
|
||||
"""
|
||||
if aggregate.sql_function in ('STDDEV_POP', 'VAR_POP'):
|
||||
if 80200 <= self.connection.pg_version <= 80204:
|
||||
raise NotImplementedError('PostgreSQL 8.2 to 8.2.4 is known to have a faulty implementation of %s. Please upgrade your version of PostgreSQL.' % aggregate.sql_function)
|
||||
|
||||
def max_name_length(self):
|
||||
"""
|
||||
Returns the maximum length of an identifier.
|
||||
|
|
|
@ -19,7 +19,7 @@ only the common types, such as ``VARCHAR`` and ``INTEGER``. For more obscure
|
|||
column types, such as geographic polygons or even user-created types such as
|
||||
`PostgreSQL custom types`_, you can define your own Django ``Field`` subclasses.
|
||||
|
||||
.. _PostgreSQL custom types: http://www.postgresql.org/docs/8.2/interactive/sql-createtype.html
|
||||
.. _PostgreSQL custom types: http://www.postgresql.org/docs/current/interactive/sql-createtype.html
|
||||
|
||||
Alternatively, you may have a complex Python object that can somehow be
|
||||
serialized to fit into a standard database column type. This is another case
|
||||
|
|
|
@ -3,13 +3,6 @@
|
|||
GEOGRAPHY=0
|
||||
POSTGIS_SQL=postgis.sql
|
||||
|
||||
# For Ubuntu 8.x and 9.x releases.
|
||||
if [ -d "/usr/share/postgresql-8.3-postgis" ]
|
||||
then
|
||||
POSTGIS_SQL_PATH=/usr/share/postgresql-8.3-postgis
|
||||
POSTGIS_SQL=lwpostgis.sql
|
||||
fi
|
||||
|
||||
# For Ubuntu 10.04
|
||||
if [ -d "/usr/share/postgresql/8.4/contrib" ]
|
||||
then
|
||||
|
|
|
@ -61,7 +61,7 @@ supported versions, and any notes for each of the supported database backends:
|
|||
================== ============================== ================== =========================================
|
||||
Database Library Requirements Supported Versions Notes
|
||||
================== ============================== ================== =========================================
|
||||
PostgreSQL GEOS, PROJ.4, PostGIS 8.2+ Requires PostGIS.
|
||||
PostgreSQL GEOS, PROJ.4, PostGIS 8.4+ 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.
|
||||
SQLite GEOS, GDAL, PROJ.4, SpatiaLite 3.6.+ Requires SpatiaLite 2.3+, pysqlite2 2.5+
|
||||
|
|
|
@ -77,20 +77,7 @@ negating the effect of persistent connections.
|
|||
PostgreSQL notes
|
||||
================
|
||||
|
||||
Django supports PostgreSQL 8.2 and higher.
|
||||
|
||||
PostgreSQL 8.2 to 8.2.4
|
||||
-----------------------
|
||||
|
||||
The implementation of the population statistics aggregates ``STDDEV_POP`` and
|
||||
``VAR_POP`` that shipped with PostgreSQL 8.2 to 8.2.4 are `known to be
|
||||
faulty`_. Users of these releases of PostgreSQL are advised to upgrade to
|
||||
`Release 8.2.5`_ or later. Django will raise a ``NotImplementedError`` if you
|
||||
attempt to use the ``StdDev(sample=False)`` or ``Variance(sample=False)``
|
||||
aggregate with a database backend that falls within the affected release range.
|
||||
|
||||
.. _known to be faulty: http://archives.postgresql.org/pgsql-bugs/2007-07/msg00046.php
|
||||
.. _Release 8.2.5: http://www.postgresql.org/docs/devel/static/release-8-2-5.html
|
||||
Django supports PostgreSQL 8.4 and higher.
|
||||
|
||||
PostgreSQL connection settings
|
||||
-------------------------------
|
||||
|
@ -165,7 +152,7 @@ such as ``REPEATABLE READ`` or ``SERIALIZABLE``, set it in the
|
|||
handle exceptions raised on serialization failures. This option is
|
||||
designed for advanced uses.
|
||||
|
||||
.. _postgresql-isolation-levels: http://www.postgresql.org/docs/devel/static/transaction-iso.html
|
||||
.. _postgresql-isolation-levels: http://www.postgresql.org/docs/current/static/transaction-iso.html
|
||||
|
||||
Indexes for ``varchar`` and ``text`` columns
|
||||
--------------------------------------------
|
||||
|
@ -179,7 +166,7 @@ for the column. The extra index is necessary to correctly perform
|
|||
lookups that use the ``LIKE`` operator in their SQL, as is done with the
|
||||
``contains`` and ``startswith`` lookup types.
|
||||
|
||||
.. _PostgreSQL operator class: http://www.postgresql.org/docs/8.4/static/indexes-opclass.html
|
||||
.. _PostgreSQL operator class: http://www.postgresql.org/docs/current/static/indexes-opclass.html
|
||||
|
||||
.. _mysql-notes:
|
||||
|
||||
|
|
|
@ -628,7 +628,7 @@ object. If it's ``None``, Django uses the :ref:`current time zone
|
|||
- MySQL: load the time zone tables with `mysql_tzinfo_to_sql`_.
|
||||
|
||||
.. _pytz: http://pytz.sourceforge.net/
|
||||
.. _Time Zones: http://www.postgresql.org/docs/9.2/static/datatype-datetime.html#DATATYPE-TIMEZONES
|
||||
.. _Time Zones: http://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-TIMEZONES
|
||||
.. _Choosing a Time Zone File: http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006667
|
||||
.. _mysql_tzinfo_to_sql: http://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html
|
||||
|
||||
|
|
|
@ -557,7 +557,7 @@ backend-specific.
|
|||
Supported for the PostgreSQL_ (``postgresql_psycopg2``) and MySQL_ (``mysql``)
|
||||
backends.
|
||||
|
||||
.. _PostgreSQL: http://www.postgresql.org/docs/8.2/static/multibyte.html
|
||||
.. _PostgreSQL: http://www.postgresql.org/docs/current/static/multibyte.html
|
||||
.. _MySQL: http://dev.mysql.com/doc/refman/5.0/en/charset-database.html
|
||||
|
||||
.. setting:: TEST_COLLATION
|
||||
|
|
|
@ -20,14 +20,14 @@ able to store certain characters in the database, and information will be lost.
|
|||
* MySQL users, refer to the `MySQL manual`_ (section 9.1.3.2 for MySQL 5.1)
|
||||
for details on how to set or alter the database character set encoding.
|
||||
|
||||
* PostgreSQL users, refer to the `PostgreSQL manual`_ (section 21.2.2 in
|
||||
PostgreSQL 8) for details on creating databases with the correct encoding.
|
||||
* PostgreSQL users, refer to the `PostgreSQL manual`_ (section 22.3.2 in
|
||||
PostgreSQL 9) for details on creating databases with the correct encoding.
|
||||
|
||||
* SQLite users, there is nothing you need to do. SQLite always uses UTF-8
|
||||
for internal encoding.
|
||||
|
||||
.. _MySQL manual: http://dev.mysql.com/doc/refman/5.1/en/charset-database.html
|
||||
.. _PostgreSQL manual: http://www.postgresql.org/docs/8.2/static/multibyte.html#AEN24104
|
||||
.. _PostgreSQL manual: http://www.postgresql.org/docs/current/static/multibyte.html
|
||||
|
||||
All of Django's database backends automatically convert Unicode strings into
|
||||
the appropriate encoding for talking to the database. They also automatically
|
||||
|
|
|
@ -352,6 +352,17 @@ in an external repository`__.
|
|||
__ https://disqus.com/
|
||||
__ https://github.com/django/django-contrib-comments
|
||||
|
||||
Support for PostgreSQL versions older than 8.4
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The end of upstream support periods was reached in December 2011 for
|
||||
PostgreSQL 8.2 and in February 2013 for 8.3. As a consequence, Django 1.6 sets
|
||||
8.4 as the minimum PostgreSQL version it officially supports.
|
||||
|
||||
You're strongly encouraged to use the most recent version of PostgreSQL
|
||||
available, because of performance improvements and to take advantage of the
|
||||
native streaming replication available in PostgreSQL 9.x.
|
||||
|
||||
Changes to :ttag:`cycle` and :ttag:`firstof`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
|
@ -155,7 +155,7 @@ of people with their ages calculated by the database::
|
|||
Jane is 42.
|
||||
...
|
||||
|
||||
__ http://www.postgresql.org/docs/8.4/static/functions-datetime.html
|
||||
__ http://www.postgresql.org/docs/current/static/functions-datetime.html
|
||||
|
||||
Passing parameters into ``raw()``
|
||||
---------------------------------
|
||||
|
|
Loading…
Reference in New Issue