summaryrefslogtreecommitdiff
path: root/django/db/backends/postgresql_psycopg2
AgeCommit message (Collapse)Author
2013-03-02Fixed #18130 -- Made the isolation level configurable on PostgreSQL.Aymeric Augustin
Thanks limscoder for the report and niwi for the draft patch.
2013-03-02Reordered methods in database wrappers.Aymeric Augustin
* Grouped related methods together -- with banner comments :/ * Described which methods are intended to be implemented in backends. * Added docstrings. * Used the same order in all wrappers.
2013-03-02Add introspection support for BinaryFieldClaude Paroz
2013-03-02Add a BinaryField model fieldClaude Paroz
Thanks Michael Jung, Charl Botha and Florian Apolloner for review and help on the patch.
2013-02-28Implemented persistent database connections.Aymeric Augustin
Thanks Anssi Kääriäinen and Karen Tracey for their inputs.
2013-02-27Refactored database exceptions wrapping.Aymeric Augustin
Squashed commit of the following: commit 2181d833ed1a2e422494738dcef311164c4e097e Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Wed Feb 27 14:28:39 2013 +0100 Fixed #15901 -- Wrapped all PEP-249 exceptions. commit 5476a5d93c19aa2f928c497d39ce6e33f52694e2 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Tue Feb 26 17:26:52 2013 +0100 Added PEP 3134 exception chaining. Thanks Jacob Kaplan-Moss for the suggestion. commit 9365fad0a650328002fb424457d675a273c95802 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Tue Feb 26 17:13:49 2013 +0100 Improved API for wrapping database errors. Thanks Alex Gaynor for the proposal. commit 1b463b765f2826f73a8d9266795cd5da4f8d5e9e Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Tue Feb 26 15:00:39 2013 +0100 Removed redundant exception wrapping. This is now taken care of by the cursor wrapper. commit 524bc7345a724bf526bdd2dd1bcf5ede67d6bb5c Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Tue Feb 26 14:55:10 2013 +0100 Wrapped database exceptions in the base backend. This covers the most common PEP-249 APIs: - Connection APIs: close(), commit(), rollback(), cursor() - Cursor APIs: callproc(), close(), execute(), executemany(), fetchone(), fetchmany(), fetchall(), nextset(). Fixed #19920. commit a66746bb5f0839f35543222787fce3b6a0d0a3ea Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Tue Feb 26 14:53:34 2013 +0100 Added a wrap_database_exception context manager and decorator. It re-throws backend-specific exceptions using Django's common wrappers.
2013-02-27Fixed #19861 -- Transaction ._dirty flag improvementAnssi Kääriäinen
There were a couple of errors in ._dirty flag handling: * It started as None, but was never reset to None. * The _dirty flag was sometimes used to indicate if the connection was inside transaction management, but this was not done consistently. This also meant the flag had three separate values. * The None value had a special meaning, causing for example inability to commit() on new connection unless enter/leave tx management was done. * The _dirty was tracking "connection in transaction" state, but only in managed transactions. * Some tests never reset the transaction state of the used connection. * And some additional less important changes. This commit has some potential for regressions, but as the above list shows, the current situation isn't perfect either.
2013-02-19Ensured a connection is established when checking the database version.Aymeric Augustin
Fixed a test broken by 21765c0a. Refs #18135.
2013-02-18Implemented PostgreSQL version as a cached property.Aymeric Augustin
2013-02-18Factored out common code in database backends.Aymeric Augustin
2013-02-16Fixed #17260 -- Added time zone aware aggregation and lookups.Aymeric Augustin
Thanks Carl Meyer for the review. Squashed commit of the following: commit 4f290bdb60b7d8534abf4ca901bd0844612dcbda Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Wed Feb 13 21:21:30 2013 +0100 Used '0:00' instead of 'UTC' which doesn't always exist in Oracle. Thanks Ian Kelly for the suggestion. commit 01b6366f3ce67d57a58ca8f25e5be77911748638 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Wed Feb 13 13:38:43 2013 +0100 Made tzname a parameter of datetime_extract/trunc_sql. This is required to work around a bug in Oracle. commit 924a144ef8a80ba4daeeafbe9efaa826566e9d02 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Wed Feb 13 14:47:44 2013 +0100 Added support for parameters in SELECT clauses. commit b4351d2890cd1090d3ff2d203fe148937324c935 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Mon Feb 11 22:30:22 2013 +0100 Documented backwards incompatibilities in the two previous commits. commit 91ef84713c81bd455f559dacf790e586d08cacb9 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Mon Feb 11 09:42:31 2013 +0100 Used QuerySet.datetimes for the admin's date_hierarchy. commit 0d0de288a5210fa106cd4350961eb2006535cc5c Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Mon Feb 11 09:29:38 2013 +0100 Used QuerySet.datetimes in date-based generic views. commit 9c0859ff7c0b00734afe7fc15609d43d83215072 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 21:43:25 2013 +0100 Implemented QuerySet.datetimes on Oracle. commit 68ab511a4ffbd2b811bf5da174d47e4dd90f28fc Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 21:43:14 2013 +0100 Implemented QuerySet.datetimes on MySQL. commit 22d52681d347a8cdf568dc31ed032cbc61d049ef Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 21:42:29 2013 +0100 Implemented QuerySet.datetimes on SQLite. commit f6800fd04c93722b45f9236976389e0b2fe436f5 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 21:43:03 2013 +0100 Implemented QuerySet.datetimes on PostgreSQL. commit 0c829c23f4cf4d6804cadcc93032dd4c26b8c65e Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 21:41:08 2013 +0100 Added datetime-handling infrastructure in the ORM layers. commit 104d82a7778cf3f0f5d03dfa53709c26df45daad Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Mon Feb 11 10:05:55 2013 +0100 Updated null_queries tests to avoid clashing with the __second lookup. commit c01bbb32358201b3ac8cb4291ef87b7612a2b8e6 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 23:07:41 2013 +0100 Updated tests of .dates(). Replaced .dates() by .datetimes() for DateTimeFields. Replaced dates with datetimes in the expected output for DateFields. commit 50fb7a52462fecf0127b38e7f3df322aeb287c43 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 21:40:09 2013 +0100 Updated and added tests for QuerySet.datetimes. commit a8451a5004c437190e264667b1e6fb8acc3c1eeb Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 22:34:46 2013 +0100 Documented the new time lookups and updated the date lookups. commit 29413eab2bd1d5e004598900c0dadc0521bbf4d3 Author: Aymeric Augustin <aymeric.augustin@m4x.org> Date: Sun Feb 10 16:15:49 2013 +0100 Documented QuerySet.datetimes and updated QuerySet.dates.
2013-02-10Fixed #19638 -- Skipped tx support testing for some DBsAnssi Kääriäinen
PostgreSQL and Oracle always support transactions, so the create table and rollback test is non-necessary on those DBs. Thanks to shai for report.
2013-01-12Fixed #17574 -- Implemented missing get_key_columns in PostgreSQL backendClaude Paroz
2013-01-12Return namedtuple from get_table_descriptionClaude Paroz
We don't make use of it currently to not break third-party db backends.
2013-01-07Created special PostgreSQL text indexes when unique is TrueClaude Paroz
Refs #19441.
2012-12-18Merge remote-tracking branch 'core/master' into schema-alterationAndrew Godwin
Conflicts: django/db/models/loading.py django/db/models/options.py
2012-12-18Fixed #19441 -- Created PostgreSQL varchar index when unique=TrueClaude Paroz
Thanks Dylan Verheul for the report and Anssi Kääriäinen for the review.
2012-11-27Fixed #19274 -- Made db connection creation overridable in subclassesAnssi Kääriäinen
Connection creation was done in db backend ._cursor() call. This included taking a new connection if needed, initializing the session state for the new connection and finally creating the connection. To allow easier modifying of these steps in subclasses (for example to support connection pools) the _cursor() now calls get_new_connection() and init_connection_state() if there isn't an existing connection. This was done for all non-gis core backends. In addition the parameters used for taking a connection are now created by get_connection_params(). We should also do the same for gis backends and encourage 3rd party backends to use the same pattern. The pattern is not enforced in code, and as the backends are private API this will not be required by documentation either.
2012-10-26Merge branch 'master' into schema-alterationAndrew Godwin
Conflicts: django/db/backends/__init__.py django/db/models/fields/related.py django/db/models/options.py
2012-09-20Imported getLogger directly from logging moduleClaude Paroz
This was a remainder of some 2.4 compatibility code.
2012-09-17Fix bug in get_indexes affecting the testsAndrew Godwin
2012-09-17Merge remote-tracking branch 'core/master' into schema-alterationAndrew Godwin
Conflicts: django/db/backends/mysql/base.py django/db/backends/postgresql_psycopg2/base.py
2012-09-12Fixed #18790 -- Encoded database password on Python 2Claude Paroz
Thanks thcourbon@gmail.com for the report.
2012-09-07Add check constraint support - needed a few Field changesAndrew Godwin
2012-09-07Repoint ForeignKeys when their to= changes.Andrew Godwin
2012-09-05Merge branch 'master' into schema-alterationAndrew Godwin
2012-08-30db_index alteration mostly workingAndrew Godwin
2012-08-30Made get_table_description also return the size of char fields on SQLiteClaude Paroz
2012-08-18[py3] Ported django.utils.safestring.Aymeric Augustin
Backwards compatibility aliases were created under Python 2.
2012-08-18First stab at MySQL supportAndrew Godwin
2012-08-02Add M2M tests and some unique supportAndrew Godwin
2012-07-26Merge branch 'master' of github.com:django/django into schema-alterationAndrew Godwin
Conflicts: django/db/backends/postgresql_psycopg2/base.py
2012-07-24Fixed #18271 -- Changed stage at which TransactionTestCase flushes DB tables.Ramiro Morales
Previously, the flush was done before the test case execution and now it is performed after it. Other changes to the testing infrastructure include: * TransactionTestCase now doesn't reset autoincrement sequences either (previous behavior can achieved by using `reset_sequences`.) With this, no implicit such reset is performed by any of the provided TestCase classes. * New ordering of test cases: All unittest tes cases are run first and doctests are run at the end. THse changes could be backward-incompatible with test cases that relied on some kind of state being preserved between tests. Please read the relevant sections of the release notes and testing documentation for further details. Thanks Andreas Pelme for the initial patch. Karen Tracey and Anssi Kääriäinen for the feedback and Anssi for reviewing. This also fixes #12408.
2012-07-22[py3] Exception aren't iterable in Python 3.Aymeric Augustin
2012-07-22[py3] Used six.reraise wherever necessary.Aymeric Augustin
2012-07-10Fixed #18602 -- Improved error message when database NAME is missingClaude Paroz
Thanks Kristian Glass for the report.
2012-06-19Add some field schema alteration methods and tests.Andrew Godwin
2012-06-18Very start of schema alteration port. Create/delete model and some tests.Andrew Godwin
2012-06-13Fixed #18461 -- Ensured that last_executed_query returns UnicodeClaude Paroz
Thanks Anssi Kääriäinen for the review.
2012-06-07Fixed #18269 -- Applied unicode_literals for Python 3 compatibility.Claude Paroz
Thanks Vinay Sajip for the support of his django3 branch and Jannis Leidel for the review.
2012-04-30Made get_indexes() consistent across backends.Anssi Kääriäinen
Fixed #15933, #18082 -- the get_indexes() method introspection was done inconsitently depending on the backend. For example SQLite included all the columns in the table in the returned dictionary, while MySQL introspected also multicolumn indexes. All backends return now consistenly only single-column indexes. Thanks to andi for the MySQL report, and ikelly for comments on Oracle's get_indexes() changes.
2012-04-29Fixed #18013 -- Use the new 'as' syntax for exceptions.Claude Paroz
Thanks Clueless for the initial patch. Note that unittest has been purposely left out (external package only used by Python 2.6).
2012-03-13Fixed #17882 (again) -- Updated the database connections' time zone when ↵Aymeric Augustin
time-zone-related settings are changed in tests. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17709 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2012-02-11Fixed #10837 -- Added CHAR(X)->CharField to mapping used in Postgres DB ↵Ramiro Morales
introspection. Thanks trbs for the report and initial patch and to Claude Paroz for updating it. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17511 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2012-02-11Fixed #7783 -- Made introspection of nullable columns more robust with Postgres.Ramiro Morales
Thanks bthomas AT ncorcle DOT com for the report and initial patch, and Claude Paroz for the final, complete patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17508 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-12-22Added support for modifying the effect of ``DISTINCT`` clauses so theyRamiro Morales
only consider some fields (PostgreSQL only). For this, the ``distinct()`` QuerySet method now accepts an optional list of model fields names and generates ``DISTINCT ON`` clauses on these cases. Thanks Jeffrey Gelens and Anssi Kääriäinen for their work. Fixes #6422. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17244 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-12-16Ensured that thread-shareability gets validated when closing a PostgreSQL or ↵Julien Phalip
SQLite connection. Refs #17258. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17206 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-12-11Fixed #17266 -- Skipped the "SET TIME ZONE" query for PostgreSQL when it ↵Aymeric Augustin
isn't necessary. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17194 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-11-20Fixed #17062 -- Ensured that the effect of SET TIME ZONE isn't lost when the ↵Aymeric Augustin
first transation is rolled back under PostgreSQL. Thanks Anssi for the patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17128 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-11-19Used symbolic constants for psycopg2 isolation levels.Aymeric Augustin
Django used the value 1 = ISOLATION_LEVEL_READ_UNCOMMITTED in some places, but PostgreSQL doesn't provide "read uncommited", it uses "read committed" instead: http://www.postgresql.org/docs/9.1/static/transaction-iso.html. For clarity, this commit uses ISOLATION_LEVEL_READ_COMMITTED = 2 where 1 was previously used. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17112 bcc190cf-cafb-0310-a4f2-bffc1f526a37