Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

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

Closed
wants to merge 1 commit into from

2 participants

Aymeric Augustin Anssi Kääriäinen
Aymeric Augustin
Owner

No description provided.

Anssi Kääriäinen
Collaborator

I don't care much about supporting 8.2 and 8.3, but on the other hand it seems not much will be gained by dropping support. It seems 8.2 and 8.3 will continue to work just fine, only real change is that they won't have supported status. So, all in all this seems good to me.

Aymeric Augustin
Owner

Merged in 6197935.

Aymeric Augustin aaugustin closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Mar 17, 2013
  1. Aymeric Augustin
This page is out of date. Refresh to see the latest.
19 django/db/backends/postgresql_psycopg2/operations.py
View
@@ -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.
2  docs/howto/custom-model-fields.txt
View
@@ -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
7 docs/ref/contrib/gis/install/create_template_postgis-debian.sh
View
@@ -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
2  docs/ref/contrib/gis/install/index.txt
View
@@ -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+
19 docs/ref/databases.txt
View
@@ -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:
2  docs/ref/models/querysets.txt
View
@@ -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
2  docs/ref/settings.txt
View
@@ -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
6 docs/ref/unicode.txt
View
@@ -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
11 docs/releases/1.6.txt
View
@@ -347,6 +347,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`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2  docs/topics/db/sql.txt
View
@@ -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()``
---------------------------------
Something went wrong with that request. Please try again.