Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use an import style reported not broken on Python 3.6bug-550 | Daniele Varrazzo | 2017-06-15 | 3 | -4/+4 |
| | | | | Couldn't reproduce the issue but it has been documented in #550. | ||||
* | Added test to verify bug 550 on Python 3.6 | Daniele Varrazzo | 2017-06-14 | 1 | -0/+9 |
| | | | | | Can't reproduce it with python 2.7 and 3.5, pushing on the CI to test with other versions. | ||||
* | typo | 山楂片 | 2017-06-12 | 1 | -1/+1 |
| | | | s/fromat/format/g | ||||
* | Link the appveyor badge in the readme to the master branch builds | Daniele Varrazzo | 2017-06-08 | 1 | -1/+1 |
| | | | | [skip-ci] | ||||
* | Run tests against PostgreSQL 10 beta1test-postgres-10beta1 | Daniele Varrazzo | 2017-06-08 | 2 | -7/+7 |
| | | | | | | Use the new Postgres verisoning schema: 10 is a major version, 10.0 a patch release. See https://wiki.postgresql.org/wiki/New_in_postgres_10#Change_in_Version_Numbering | ||||
* | Merge branch 'errcodes-update' | Daniele Varrazzo | 2017-06-05 | 4 | -6/+20 |
|\ | |||||
| * | Updated docs about versions supported in errcodes | Daniele Varrazzo | 2017-06-05 | 2 | -1/+2 |
| | | |||||
| * | Error codes updated to PG 10 beta 1 | Daniele Varrazzo | 2017-06-05 | 2 | -5/+12 |
| | | |||||
| * | errcodes updated to PG 9.6 | Daniele Varrazzo | 2017-06-05 | 2 | -1/+7 |
|/ | |||||
* | Added doc link to replication commands | Daniele Varrazzo | 2017-05-10 | 1 | -2/+5 |
| | |||||
* | Merge branch 'fix-547' | Daniele Varrazzo | 2017-04-19 | 3 | -1/+26 |
|\ | |||||
| * | Fixed args parsing in ReplicationCursor.consume_stream() | Daniele Varrazzo | 2017-04-19 | 3 | -1/+26 |
| | | | | | | | | Close #547. | ||||
* | | Added news entries for the previous 2 merge requests | Daniele Varrazzo | 2017-04-19 | 1 | -0/+4 |
| | | |||||
* | | Merge remote-tracking branch 'fix_lobject_factory' | Daniele Varrazzo | 2017-04-19 | 2 | -1/+8 |
|\ \ | |||||
| * | | Python < 3.2 doesn’t have assertIsInstance | Frazer McLean | 2017-04-16 | 1 | -1/+1 |
| | | | |||||
| * | | Fix name of lobject keyword argument | Frazer McLean | 2017-04-16 | 2 | -1/+8 |
| |/ | |||||
* | | Merge remote-tracking branch 'fix_lobject_mode' | Daniele Varrazzo | 2017-04-19 | 2 | -1/+11 |
|\ \ | |/ |/| | |||||
| * | Handle lobject mode=None correctly | Frazer McLean | 2017-04-16 | 2 | -1/+11 |
|/ | |||||
* | Merge branch 'fix-410' | Daniele Varrazzo | 2017-04-05 | 3 | -0/+90 |
|\ | |||||
| * | Added test to verify callback errors in named cursors | Daniele Varrazzo | 2017-04-05 | 1 | -0/+17 |
| | | | | | | | | They work fine. | ||||
| * | Don't clobber a Python exception with an unknown error | Daniele Varrazzo | 2017-04-05 | 2 | -0/+5 |
| | | | | | | | | Close #410 | ||||
| * | Added test to verify #410 | Daniele Varrazzo | 2017-04-05 | 1 | -0/+68 |
|/ | | | | The 'unknown error' happens on query. | ||||
* | Note that the fast executemany functions don't respect rowcount | Daniele Varrazzo | 2017-03-28 | 1 | -0/+6 |
| | | | | See issue #540 | ||||
* | Merge remote-tracking branch 'origin/fix-536' | Daniele Varrazzo | 2017-03-22 | 9 | -72/+172 |
|\ | |||||
| * | Expose *DATETIMETZ* objects in the extensions module | Daniele Varrazzo | 2017-03-22 | 2 | -4/+10 |
| | | |||||
| * | Find again mxDateTime includes in default locations | Daniele Varrazzo | 2017-03-22 | 1 | -1/+2 |
| | | |||||
| * | Return objects with timezone parsing infinity timestamptz | Daniele Varrazzo | 2017-03-22 | 6 | -67/+160 |
| | | | | | | | | Close #536. | ||||
* | | Fix curl not found on AppVeyor | Daniele Varrazzo | 2017-03-22 | 1 | -1/+1 |
|/ | | | | http://help.appveyor.com/discussions/problems/6312-curl-command-not-found | ||||
* | Dropped info that the features requires libpq >= 9.0 | Daniele Varrazzo | 2017-03-20 | 1 | -2/+0 |
| | | | | | | We are currently requiring libpq 9.1 at least, and the feature was released in 2.7, which could have never been compiled with previos libpq versions. | ||||
* | Dropped repeated doc links in the same paragraph | Daniele Varrazzo | 2017-03-16 | 1 | -6/+6 |
| | | | | And some more sql docs cleanup. | ||||
* | Merge branch 'fix-528' | Daniele Varrazzo | 2017-03-16 | 7 | -40/+145 |
|\ | |||||
| * | replication connection init refactored to use psyco_make_dsn | Daniele Varrazzo | 2017-03-16 | 1 | -34/+22 |
| | | | | | | | | | | | | Some extra bonus refactoring to improve the function readability (don't reuse names for variables with different refcount rules, don't pass separate obj/self, async pass-through...) | ||||
| * | Obscure the password on url dsn too | Daniele Varrazzo | 2017-03-16 | 6 | -15/+81 |
| | | | | | | | | | | | | Note that we don't leak anymore the password length. Fix #528 | ||||
| * | Password scrubbing refactored in a separate functionfix-528 | Daniele Varrazzo | 2017-03-15 | 1 | -7/+18 |
| | | |||||
| * | Added tests to verify the password is obscured | Daniele Varrazzo | 2017-03-15 | 1 | -0/+40 |
| | | | | | | | | The url test fails: see issue #528 | ||||
* | | Added docs about the usability of sql objects with copy_expert()sql-copy | Daniele Varrazzo | 2017-03-16 | 3 | -6/+15 |
| | | | | | | | | See issue #529. | ||||
* | | Added test to verify sql objects work with copy_expert() | Daniele Varrazzo | 2017-03-16 | 2 | -2/+26 |
|/ | | | | | | I'll be honest: I lucked out, I didn't think about this combination. But maybe sheer luck, maybe using common code paths, it just works. Let's make it stays so. | ||||
* | Merge branch 'fix-443' | Daniele Varrazzo | 2017-03-14 | 4 | -27/+89 |
|\ | |||||
| * | Reported bug #443 fixed *again*fix-443 | Daniele Varrazzo | 2017-03-14 | 1 | -1/+10 |
| | | | | | | | | Also see ticket #527. | ||||
| * | Bunch of test tweaks to make the test grid green | Daniele Varrazzo | 2017-03-14 | 2 | -12/+14 |
| | | |||||
| * | Connection state fixed noted in the news | Daniele Varrazzo | 2017-03-14 | 1 | -0/+2 |
| | | |||||
| * | Always raise OperationalError when connection was closed externally. | Greg Ward | 2017-03-14 | 2 | -5/+7 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From the DB-API (https://www.python.org/dev/peps/pep-0249/): OperationalError Exception raised for errors that are related to the database's operation and not necessarily under the control of the programmer, e.g. an unexpected disconnect occurs, [...] Additionally, psycopg2 was inconsistent, at least in the async case: depending on how the "connection closed" error was reported from the kernel to libpq, it would sometimes raise OperationalError and sometimes DatabaseError. Now it always raises OperationalError. | ||||
| * | Always detect when a connection is closed behind psycopg2's back. | Greg Ward | 2017-03-14 | 2 | -0/+51 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a race condition that only seems to happen over Unix-domain sockets. Sometimes, the closed socket is reported by the kernel to libpq like this (captured with strace): sendto(3, "Q\0\0\0\34select pg_backend_pid()\0", 29, MSG_NOSIGNAL, NULL, 0) = 29 recvfrom(3, "E\0\0\0mSFATAL\0C57P01\0Mterminating "..., 16384, 0, NULL, NULL) = 110 recvfrom(3, 0x12d0330, 16384, 0, 0, 0) = -1 ECONNRESET (Connection reset by peer) That is, psycopg2/libpq sees no error when sending the first query after the connection is closed, but gets an error reading the result. In that case, everything worked fine. But sometimes, the error manifests like this: sendto(3, "Q\0\0\0\34select pg_backend_pid()\0", 29, MSG_NOSIGNAL, NULL, 0) = -1 EPIPE (Broken pipe) recvfrom(3, "E\0\0\0mSFATAL\0C57P01\0Mterminating "..., 16384, 0, NULL, NULL) = 110 recvfrom(3, "", 16274, 0, NULL, NULL) = 0 recvfrom(3, "", 16274, 0, NULL, NULL) = 0 i.e. libpq received an error when sending the query. This manifests as a slightly different exception from a slightly different place. More importantly, in this case connection.closed is left at 0 rather than being set to 2, and that is the bug I'm fixing here. Note that we see almost identical behaviour for sync and async connections, and the fixes are the same. So I added extremely similar test cases. Finally, there is still a bug here: for async connections, we sometimes raise DatabaseError (incorrect) and sometimes raise OperationalError (correct). Will fix that next. | ||||
| * | Flake8 complaints | Daniele Varrazzo | 2017-03-14 | 1 | -12/+8 |
|/ | |||||
* | Improved notes to release psycopg packages | Daniele Varrazzo | 2017-03-13 | 1 | -15/+45 |
| | |||||
* | Less stuff in the readme, more in the docs | Daniele Varrazzo | 2017-03-13 | 2 | -13/+18 |
| | |||||
* | Bump to next dev release | Daniele Varrazzo | 2017-03-13 | 1 | -1/+1 |
| | |||||
* | Bump to version 2.7.12_7_1 | Daniele Varrazzo | 2017-03-11 | 1 | -1/+1 |
| | |||||
* | Report ticket 518 fixed | Daniele Varrazzo | 2017-03-11 | 2 | -8/+13 |
| | | | | | The fix is actually implemented in the openssl1 branch of https://github.com/psycopg/psycopg2-wheels | ||||
* | correct minor grammatical issue with deprecation warning | Jon Nelson | 2017-03-03 | 1 | -1/+1 |
| |