Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #19968 -- Dropped support for PostgreSQL < 8.4.

  • Loading branch information...
commit 6197935152419f064911f7a26b70da32f31435c7 1 parent 9dc5702
@aaugustin aaugustin authored
View
19 django/db/backends/postgresql_psycopg2/operations.py
@@ -9,7 +9,7 @@ def __init__(self, connection):
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 @@ def date_interval_sql(self, sql, connector, timedelta):
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 @@ def datetime_extract_sql(self, lookup_type, field_name, tzname):
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 @@ def datetime_trunc_sql(self, lookup_type, field_name, tzname):
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 @@ def sequence_reset_sql(self, style, model_list):
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.
View
2  docs/howto/custom-model-fields.txt
@@ -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
View
7 docs/ref/contrib/gis/install/create_template_postgis-debian.sh
@@ -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
View
2  docs/ref/contrib/gis/install/index.txt
@@ -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+
View
19 docs/ref/databases.txt
@@ -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:
View
2  docs/ref/models/querysets.txt
@@ -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
View
2  docs/ref/settings.txt
@@ -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
View
6 docs/ref/unicode.txt
@@ -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
View
11 docs/releases/1.6.txt
@@ -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`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
View
2  docs/topics/db/sql.txt
@@ -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()``
---------------------------------
Please sign in to comment.
Something went wrong with that request. Please try again.