]> git.ipfire.org Git - thirdparty/psycopg.git/log
thirdparty/psycopg.git
2 years agochore: bump psycopg package version to 3.1.11
Daniele Varrazzo [Fri, 22 Sep 2023 22:08:01 +0000 (00:08 +0200)] 
chore: bump psycopg package version to 3.1.11

2 years agodocs: Document what to do when a new major version of Postgres is released
Daniele Varrazzo [Fri, 22 Sep 2023 21:44:42 +0000 (23:44 +0200)] 
docs: Document what to do when a new major version of Postgres is released

2 years agoci: provision a M1 build server automatically, if needed
Daniele Varrazzo [Fri, 22 Sep 2023 20:36:27 +0000 (22:36 +0200)] 
ci: provision a M1 build server automatically, if needed

2 years agofix(bump_version): handle tagging without bumping version
Daniele Varrazzo [Fri, 22 Sep 2023 23:07:03 +0000 (01:07 +0200)] 
fix(bump_version): handle tagging without bumping version

2 years agoci: run 3rd party integration tests on commit on maint-3.1 branch
Daniele Varrazzo [Fri, 22 Sep 2023 22:23:07 +0000 (00:23 +0200)] 
ci: run 3rd party integration tests on commit on maint-3.1 branch

2 years agochore: update cibuildwheel version
Daniele Varrazzo [Fri, 22 Sep 2023 21:32:16 +0000 (23:32 +0200)] 
chore: update cibuildwheel version

2 years agochore: upgrade libpq, OpenSSL versions
Daniele Varrazzo [Fri, 22 Sep 2023 21:31:46 +0000 (23:31 +0200)] 
chore: upgrade libpq, OpenSSL versions

2 years agodocs: refresh stale release information
Daniele Varrazzo [Fri, 22 Sep 2023 21:23:47 +0000 (23:23 +0200)] 
docs: refresh stale release information

2 years agoperf(windows): don't use wait_c.
Daniele Varrazzo [Tue, 19 Sep 2023 20:38:03 +0000 (22:38 +0200)] 
perf(windows): don't use wait_c.

The function was reported to use excessive CPU. Need to investigate,
however, for the moment, suspend its usage on Windows.

See #645.

2 years agodocs: add docs about connection pool logging
Daniele Varrazzo [Wed, 20 Sep 2023 09:04:22 +0000 (11:04 +0200)] 
docs: add docs about connection pool logging

2 years agofix(c): fix loading of intervals with days and months or years
Daniele Varrazzo [Tue, 19 Sep 2023 19:07:20 +0000 (21:07 +0200)] 
fix(c): fix loading of intervals with days and months or years

Close #643.

2 years agoci: fix building Python 3.7 extension on windows using delvewheel 1.5.1
Daniele Varrazzo [Fri, 15 Sep 2023 15:35:58 +0000 (17:35 +0200)] 
ci: fix building Python 3.7 extension on windows using delvewheel 1.5.1

See https://github.com/adang1345/delvewheel/issues/39

2 years agochore: constrain importlib metadata to the version supporting Python 3.7
Daniele Varrazzo [Fri, 15 Sep 2023 11:44:15 +0000 (13:44 +0200)] 
chore: constrain importlib metadata to the version supporting Python 3.7

2 years agorefactor: convert back query2pg from static method to regular function
Daniele Varrazzo [Mon, 11 Sep 2023 00:36:26 +0000 (01:36 +0100)] 
refactor: convert back query2pg from static method to regular function

On Python < 3.10, a static method doesn't seem callable, at least during
class building, so applying lru_cache on it fails.

2 years agofix: avoid caching the parsing of large queries
Daniele Varrazzo [Mon, 4 Sep 2023 13:42:00 +0000 (14:42 +0100)] 
fix: avoid caching the parsing of large queries

These queries are typically generated by ORMs and have poor
cacheability, but can result in a lot of memory being used.

Close #628.

See also <https://github.com/sqlalchemy/sqlalchemy/discussions/10270>.

2 years agochore(binary): bump depending libraries
Daniele Varrazzo [Mon, 4 Sep 2023 00:16:35 +0000 (01:16 +0100)] 
chore(binary): bump depending libraries

Bump to libpq 15.4, OpenSSL 1.1.1v, OpenLDAP 2.6.6.

Particularly important is the libpq bump because the library, since
15.2, allows group access to the SSL certificate. See
https://github.com/psycopg/psycopg/discussions/528

2 years agodocs: add porting tips for cursor subclasses
Daniele Varrazzo [Mon, 4 Sep 2023 00:09:18 +0000 (01:09 +0100)] 
docs: add porting tips for cursor subclasses

2 years agorefactor(bump_version): do without parse_version function
Daniele Varrazzo [Sat, 2 Sep 2023 10:41:45 +0000 (11:41 +0100)] 
refactor(bump_version): do without parse_version function

Also allow for no change in the change log found (mostly for testing).

2 years agochore: avoid anyio >= 4 for the moment
Daniele Varrazzo [Fri, 1 Sep 2023 10:46:01 +0000 (11:46 +0100)] 
chore: avoid anyio >= 4 for the moment

The 'policy' parameter is not supported anymore, and finding the right
workaround is tricky, especially because it's only needed for Windows,
and because anyio 4 doesn't support Python 3.7, so we would need to
support both the versions.

When we will drop Python 3.7 support it will be easier move to anyio >= 4.

2 years agoMerge branch 'fix-solaris'
Daniele Varrazzo [Fri, 1 Sep 2023 12:35:16 +0000 (13:35 +0100)] 
Merge branch 'fix-solaris'

2 years agodocs: mention fix for solaris build
Daniele Varrazzo [Fri, 1 Sep 2023 12:32:51 +0000 (13:32 +0100)] 
docs: mention fix for solaris build

2 years agofix: support solaris and deriv
Gaige B. Paulsen [Thu, 31 Aug 2023 11:40:44 +0000 (11:40 +0000)] 
fix: support solaris and deriv

2 years agofix: add missing pipeline sync in async cursro scroll().
Daniele Varrazzo [Sat, 19 Aug 2023 17:23:38 +0000 (18:23 +0100)] 
fix: add missing pipeline sync in async cursro scroll().

2 years agofix: add missing lock in async executemany with no pipeline
Daniele Varrazzo [Sat, 19 Aug 2023 17:23:38 +0000 (18:23 +0100)] 
fix: add missing lock in async executemany with no pipeline

2 years agoMerge branch 'fix-oid-overflow'
Daniele Varrazzo [Fri, 1 Sep 2023 10:55:25 +0000 (11:55 +0100)] 
Merge branch 'fix-oid-overflow'

2 years agodocs: add news entry about bug #630 fixed
Daniele Varrazzo [Wed, 23 Aug 2023 14:39:54 +0000 (15:39 +0100)] 
docs: add news entry about bug #630 fixed

2 years ago* fix integer overflow for oids > 2^31
David Grimes [Wed, 23 Aug 2023 13:37:50 +0000 (09:37 -0400)] 
* fix integer overflow for oids > 2^31

2 years agodocs: allow square logos in the sponsors page
Daniele Varrazzo [Fri, 18 Aug 2023 15:41:20 +0000 (16:41 +0100)] 
docs: allow square logos in the sponsors page

2 years agochore: add @webisoftcom logo sponsorship
Daniele Varrazzo [Fri, 18 Aug 2023 15:39:42 +0000 (16:39 +0100)] 
chore: add @webisoftcom logo sponsorship

2 years agoMerge branch 'raw_query_support'
Daniele Varrazzo [Tue, 15 Aug 2023 21:56:41 +0000 (22:56 +0100)] 
Merge branch 'raw_query_support'

2 years agodocs: improve docs about raw query cursors, add release note 560/head
Daniele Varrazzo [Tue, 15 Aug 2023 15:28:01 +0000 (16:28 +0100)] 
docs: improve docs about raw query cursors, add release note

2 years agotests: fix cursor tests to run on raw cursors too
Daniele Varrazzo [Mon, 14 Aug 2023 18:34:19 +0000 (19:34 +0100)] 
tests: fix cursor tests to run on raw cursors too

2 years agofix: fix TypeInfo.fetch() with connections using RawCursor as factory
Daniele Varrazzo [Sun, 13 Aug 2023 09:48:26 +0000 (10:48 +0100)] 
fix: fix TypeInfo.fetch() with connections using RawCursor as factory

2 years agorefactor: make is_param_sequence a type guard
Daniele Varrazzo [Sun, 13 Aug 2023 09:43:43 +0000 (10:43 +0100)] 
refactor: make is_param_sequence a type guard

Reduce the need of typing hints here and there, although, if it returns
false, it doesn't guarantee "the other half of the union".

2 years agoAdd raw query support with PostgreSQL native placeholders
Joel Jakobsson [Tue, 9 May 2023 00:49:03 +0000 (02:49 +0200)] 
Add raw query support with PostgreSQL native placeholders

This commit introduces support for raw queries with PostgreSQL's native
placeholders ($1, $2, etc.) in psycopg3. By setting the use_raw_query attribute
to True in a custom cursor class, users can enable the use of raw queries with
native placeholders.

The code demonstrates how to create a custom RawQueryCursor class that sets the
use_raw_query attribute to True. This custom cursor class can be set as the
cursor_factory when connecting to the database, allowing users to choose between
PostgreSQL's native placeholders or the standard %s placeholder in their queries.
The code also demonstrates how both styles of placeholders can coexist. Test
cases are included to verify the correct behavior of the new feature.

2 years agoMerge branch 'tests-refactoring'
Daniele Varrazzo [Tue, 15 Aug 2023 14:53:00 +0000 (15:53 +0100)] 
Merge branch 'tests-refactoring'

2 years agotest(crdb): accept different exception on multi-query prepare attempt
Daniele Varrazzo [Sat, 5 Aug 2023 19:53:35 +0000 (20:53 +0100)] 
test(crdb): accept different exception on multi-query prepare attempt

2 years agotest: unify server and client async cursor tests
Daniele Varrazzo [Sat, 5 Aug 2023 18:38:31 +0000 (19:38 +0100)] 
test: unify server and client async cursor tests

Also clean up differences between sync and async cursor tests.

2 years agotest: refactor common cursor tests using parametric fixture
Daniele Varrazzo [Mon, 15 May 2023 09:18:28 +0000 (11:18 +0200)] 
test: refactor common cursor tests using parametric fixture

Tests common to Cursor and BaseCursor now use the same code, with a
parametric connection fixture to run both them.

Tests specific to one of the class moved to a module of their own.

TODO: copy tests might do the same. Async cursors tests should be
refactored too.

2 years agofix: rename QueuedLibpqWriter object
Daniele Varrazzo [Thu, 10 Aug 2023 00:37:22 +0000 (01:37 +0100)] 
fix: rename QueuedLibpqWriter object

It was mistakenly named Driver, not Writer.

2 years agofix: fix infinite loop and OOM in bad executemany
Daniele Varrazzo [Sat, 5 Aug 2023 21:15:05 +0000 (22:15 +0100)] 
fix: fix infinite loop and OOM in bad executemany

The bad condition is only reached using COPY into executemany in
pipeline mode and with prepared statements disabled. It should probably
never happen outside the unit test.

2 years agoMerge branch 'numpy-types-support'
Daniele Varrazzo [Sat, 5 Aug 2023 14:21:46 +0000 (15:21 +0100)] 
Merge branch 'numpy-types-support'

2 years agofeat(crdb): add numpy support 332/head
Daniele Varrazzo [Thu, 3 Aug 2023 13:02:23 +0000 (14:02 +0100)] 
feat(crdb): add numpy support

2 years agofix(c): don't try to mutate Cython type
Daniele Varrazzo [Wed, 2 Aug 2023 00:14:04 +0000 (01:14 +0100)] 
fix(c): don't try to mutate Cython type

These types are now marked immutable. Use a module variable instead.

2 years agofix(copy): fix dumping by oid in text mode
Daniele Varrazzo [Fri, 13 Jan 2023 01:30:05 +0000 (01:30 +0000)] 
fix(copy): fix dumping by oid in text mode

It is less useful than in binary mode, but it was being pretty much
ignored.

2 years agofix(numpy): fix dumping numpy values by oid
Daniele Varrazzo [Fri, 13 Jan 2023 01:24:45 +0000 (01:24 +0000)] 
fix(numpy): fix dumping numpy values by oid

2 years agorefactor(numpy): get OIDs from the _oid module
Daniele Varrazzo [Mon, 9 Jan 2023 10:35:20 +0000 (10:35 +0000)] 
refactor(numpy): get  OIDs from the _oid module

Also drop context optionality in adapters registration.

2 years agodocs: add news entry and docs about numpy scalars support
Daniele Varrazzo [Mon, 9 Jan 2023 08:30:41 +0000 (08:30 +0000)] 
docs: add news entry and docs about numpy scalars support

2 years agofeat: add C numpy dumpers
Daniele Varrazzo [Fri, 6 Jan 2023 19:04:53 +0000 (19:04 +0000)] 
feat: add C numpy dumpers

2 years agodocs: improve comment about why we need to register builtin numerics last
Daniele Varrazzo [Fri, 6 Jan 2023 19:04:19 +0000 (19:04 +0000)] 
docs: improve comment about why we need to register builtin numerics last

2 years agorefactor(c): add _IntOrSubclass dumper to the C dumpers too
Daniele Varrazzo [Fri, 6 Jan 2023 18:28:23 +0000 (18:28 +0000)] 
refactor(c): add _IntOrSubclass dumper to the C dumpers too

2 years agotest(numpy) avoid overflow testing with int16
Daniele Varrazzo [Mon, 19 Dec 2022 15:16:40 +0000 (15:16 +0000)] 
test(numpy) avoid overflow testing with int16

2 years agotest(numpy): drop test with deprecated alias
Daniele Varrazzo [Mon, 19 Dec 2022 15:04:48 +0000 (15:04 +0000)] 
test(numpy): drop test with deprecated alias

2 years agotest(numpy): add dump tests with list of numpy values
Daniele Varrazzo [Mon, 19 Dec 2022 15:01:39 +0000 (15:01 +0000)] 
test(numpy): add dump tests with list of numpy values

2 years agotest(numpy): allow more approximation comparing float16 values
Daniele Varrazzo [Sat, 17 Dec 2022 04:08:56 +0000 (04:08 +0000)] 
test(numpy): allow more approximation comparing float16 values

    >>> numpy.float16("-0.00018227100372314453")
    -0.0001823

    >>> -0.0001823 == pytest.approx(-0.00018227100372314453, rel=1e-5)
    False

    >>> -0.0001823 == pytest.approx(-0.00018227100372314453, rel=1e-3)
    True

2 years agofix(numpy): fix dumpers registration order
Daniele Varrazzo [Sat, 17 Dec 2022 03:47:18 +0000 (03:47 +0000)] 
fix(numpy): fix dumpers registration order

If numpy dumpers are registered after numeric ones, then NPNumericBinaryDumper
is used instead of NumericBinaryDumper when looking up by oid. This
breaks dumping values with a decimal part.

2 years agotest(numpy): consolidate numpy float tests
Daniele Varrazzo [Fri, 16 Dec 2022 20:23:28 +0000 (20:23 +0000)] 
test(numpy): consolidate numpy float tests

2 years agotest(numpy): add random tests with numpy objects
Daniele Varrazzo [Fri, 16 Dec 2022 19:11:19 +0000 (19:11 +0000)] 
test(numpy): add random tests with numpy objects

2 years agotest(numpy): consolidate all numpy int tests in a single parametrized one
Daniele Varrazzo [Fri, 16 Dec 2022 18:26:23 +0000 (18:26 +0000)] 
test(numpy): consolidate all numpy int tests in a single parametrized one

2 years agotest(faker): don't crash if a lazy-import dumper class is not available
Daniele Varrazzo [Fri, 16 Dec 2022 18:24:02 +0000 (18:24 +0000)] 
test(faker): don't crash if a lazy-import dumper class is not available

2 years agofeat(numpy): add longlong dumpers
Daniele Varrazzo [Fri, 16 Dec 2022 18:23:19 +0000 (18:23 +0000)] 
feat(numpy): add longlong dumpers

2 years agorefactor(numpy): reuse base or final classes from builtin numeric types
Daniele Varrazzo [Fri, 16 Dec 2022 16:49:32 +0000 (16:49 +0000)] 
refactor(numpy): reuse base or final classes from builtin numeric types

2 years agorefactor(numpy): drop aliases for dumpers
Daniele Varrazzo [Fri, 16 Dec 2022 16:31:59 +0000 (16:31 +0000)] 
refactor(numpy): drop aliases for dumpers

Leave only one class per target PostgreSQL type and map the Python type
to the smallest type fitting the whole domain.

2 years agorefactor(numpy): use builtin bool dumpers for numpy booleans too
Daniele Varrazzo [Fri, 16 Dec 2022 16:21:36 +0000 (16:21 +0000)] 
refactor(numpy): use builtin bool dumpers for numpy booleans too

2 years agotest(numpy) fix tests with approximative comparisons
Daniele Varrazzo [Fri, 16 Dec 2022 16:17:02 +0000 (16:17 +0000)] 
test(numpy) fix tests with approximative comparisons

2 years agorefactor(numpy): use existing numeric base classes
Daniele Varrazzo [Fri, 16 Dec 2022 15:45:19 +0000 (15:45 +0000)] 
refactor(numpy): use existing numeric base classes

2 years agotest(numpy): fix skipping tests if numpy module is not installed
Daniele Varrazzo [Fri, 16 Dec 2022 15:36:45 +0000 (15:36 +0000)] 
test(numpy): fix skipping tests if numpy module is not installed

2 years agofeat: add numpy dumpers for int, float, bool types
Vertemati Francesco [Tue, 5 Jul 2022 15:37:32 +0000 (11:37 -0400)] 
feat: add numpy dumpers for int, float, bool types

Close #192.

2 years agochore: bump psycopg package version to 3.1.10
Daniele Varrazzo [Fri, 4 Aug 2023 14:55:12 +0000 (15:55 +0100)] 
chore: bump psycopg package version to 3.1.10

2 years agochore: upgrade cibuildwheel
Daniele Varrazzo [Fri, 4 Aug 2023 15:06:01 +0000 (16:06 +0100)] 
chore: upgrade cibuildwheel

2 years agochore: bump libpq, openssl used in binary packages
Daniele Varrazzo [Fri, 4 Aug 2023 15:02:29 +0000 (16:02 +0100)] 
chore: bump libpq, openssl used in binary packages

2 years agoMerge branch 'pipeline-nextset-error'
Daniele Varrazzo [Wed, 2 Aug 2023 17:17:31 +0000 (18:17 +0100)] 
Merge branch 'pipeline-nextset-error'

2 years agofix: drop error using nextset() in pipeline mode 614/head
Daniele Varrazzo [Wed, 2 Aug 2023 13:33:43 +0000 (14:33 +0100)] 
fix: drop error using nextset() in pipeline mode

Now that the behaviour of pipeline is the same of non-pipeline, raising
an exception on nextset is a difference in behaviour we can probably
drop.

2 years agofix!: only keep results of last execute() by a cursor in pipeline mode
Denis Laxalde [Mon, 31 Jul 2023 14:13:58 +0000 (16:13 +0200)] 
fix!: only keep results of last execute() by a cursor in pipeline mode

The assertion on fetchall() in 'test_execute_nextset_error' now passes.

Fixes #604.

2 years agofix: raise an error instead of a warning using nextset in pipeline mode
Daniele Varrazzo [Tue, 1 Aug 2023 11:34:01 +0000 (12:34 +0100)] 
fix: raise an error instead of a warning using nextset in pipeline mode

Note: the tests, intentionally, don't pass, because they expects
execute() results to clobber the previous ones rather than accumulating.
This behaviour is to be changed in a further commit.

See #604.

2 years agofix: raise a warning if nextset is used after execute in pipeline mode
Daniele Varrazzo [Tue, 1 Aug 2023 10:57:48 +0000 (11:57 +0100)] 
fix: raise a warning if nextset is used after execute in pipeline mode

So far have accumulated results, unlike in no-pipeline mode, where
results have been discarded. But this proved to be not reliable, so we
will forbid it in 3.2.

See #604

2 years agodocs: drop example about using nextset() in pipeline mode
Daniele Varrazzo [Tue, 1 Aug 2023 11:04:33 +0000 (12:04 +0100)] 
docs: drop example about using nextset() in pipeline mode

The feature is sort of accidental, not tested, and proved to be not
reliable, so we will remove it in 3.2.

See #604.

2 years agoMark two more tests as timing-sensitive
Martin Weinelt [Wed, 2 Aug 2023 01:59:23 +0000 (03:59 +0200)] 
Mark two more tests as timing-sensitive

FAILED tests/pool/test_pool_async.py::test_reconnect[asyncio] - AssertionError: [0.11509847640991211, 0.2041318416595459, 0.40631914138793945]
FAILED tests/pool/test_pool.py::test_reconnect - ValueError: the proxy didn't start listening in time

2 years agoMerge pull request #603 from JelteF/add-close-prepared
Daniele Varrazzo [Tue, 1 Aug 2023 14:53:25 +0000 (15:53 +0100)] 
Merge pull request #603 from JelteF/add-close-prepared

Add Close wrappers to PGconn

2 years agodocs: add news entry about libp1 17 close functions support 603/head
Daniele Varrazzo [Tue, 1 Aug 2023 14:23:37 +0000 (15:23 +0100)] 
docs: add news entry about libp1 17 close functions support

2 years agotest: add CI jobs to run libpq with PG master
Jelte Fennema [Tue, 1 Aug 2023 13:07:15 +0000 (15:07 +0200)] 
test: add CI jobs to run libpq with PG master

2 years agotest: add tests for close_prepared/portal for unsupported libpq
Jelte Fennema [Tue, 1 Aug 2023 12:39:32 +0000 (14:39 +0200)] 
test: add tests for close_prepared/portal for unsupported libpq

2 years agofix: fix pq close wrappers Python implementation
Jelte Fennema [Mon, 31 Jul 2023 15:05:01 +0000 (17:05 +0200)] 
fix: fix pq close wrappers Python implementation

Co-authored-by: Denis Laxalde <denis@laxalde.org>
2 years agotest: add tests for close pq wrappers
Jelte Fennema [Tue, 25 Jul 2023 14:41:00 +0000 (16:41 +0200)] 
test: add tests for close pq wrappers

2 years agofix: add close wrappers to FinishedPGconn too
Jelte Fennema [Tue, 25 Jul 2023 14:23:28 +0000 (16:23 +0200)] 
fix: add close wrappers to FinishedPGconn too

2 years agofeat: add Close wrappers to pgconn.pyx
Jelte Fennema [Wed, 12 Jul 2023 21:41:51 +0000 (23:41 +0200)] 
feat: add Close wrappers to pgconn.pyx

2 years agodocs: fix release version of json bytes dump support
Daniele Varrazzo [Tue, 1 Aug 2023 10:11:50 +0000 (11:11 +0100)] 
docs: fix release version of json bytes dump support

It is to be released in 3.1.10, not already released in 3.1.9... See #568

2 years agoMerge branch 'py312'
Daniele Varrazzo [Tue, 1 Aug 2023 02:53:54 +0000 (03:53 +0100)] 
Merge branch 'py312'

2 years agodocs: mention Python 3.12 support in news file
Daniele Varrazzo [Tue, 1 Aug 2023 02:48:52 +0000 (03:48 +0100)] 
docs: mention Python 3.12 support in news file

2 years agoci: bump Python 3.12 test version to beta 4
Daniele Varrazzo [Mon, 31 Jul 2023 23:56:51 +0000 (00:56 +0100)] 
ci: bump Python 3.12 test version to beta 4

2 years agotest: mark tests as failing to monitoring strange behaviour with Python 3.12
Daniele Varrazzo [Wed, 24 May 2023 23:09:09 +0000 (01:09 +0200)] 
test: mark tests as failing to monitoring strange behaviour with Python 3.12

With Python 3.12a7 and Cython-3.0.0b3, these two tests fails. It seems
that when an exception is involved the __del__ method is not called.

2 years agoci: set up test grid to test Python 3.12
Daniele Varrazzo [Wed, 24 May 2023 23:14:09 +0000 (01:14 +0200)] 
ci: set up test grid to test Python 3.12

2 years agochore: declare Python 3.12 supported in classifiers
Daniele Varrazzo [Wed, 24 May 2023 23:08:50 +0000 (01:08 +0200)] 
chore: declare Python 3.12 supported in classifiers

2 years agochore: upgrade Cython to stable 3.0.0
Daniele Varrazzo [Wed, 24 May 2023 23:08:26 +0000 (01:08 +0200)] 
chore: upgrade Cython to stable 3.0.0

2 years agofix: fix "can't adapt" error message on Python 3.11
Daniele Varrazzo [Mon, 31 Jul 2023 23:49:04 +0000 (00:49 +0100)] 
fix: fix "can't adapt" error message on Python 3.11

It appeared like "using placeholder '%PyFormat.TEXT'" because of the
change in the Enum display already fixed elsewhere.

Spotted in the conversation in #611.

Also fix unneeded nested exception in the Python version of the code.

2 years agofix: fix resetting read_only/deferrable to default using None 612/head
Daniele Varrazzo [Mon, 31 Jul 2023 22:52:45 +0000 (23:52 +0100)] 
fix: fix resetting read_only/deferrable to default using None

2 years agoFix spelling in from_pg2
Šarūnas Nejus [Sun, 30 Jul 2023 14:34:30 +0000 (15:34 +0100)] 
Fix spelling in from_pg2

2 years agodocs: add clarification about transaction characteristics attributes
Daniele Varrazzo [Tue, 25 Jul 2023 14:52:00 +0000 (15:52 +0100)] 
docs: add clarification about transaction characteristics attributes

They don't affect autocommit connections as they used to in psycopg2, so
note it as a difference from psycopg2. Add more explicit warning about
this limitation.

https://www.postgresql.org/message-id/DB7PR07MB39163E0AFB907413EE5C10F68738A%40DB7PR07MB3916.eurprd07.prod.outlook.com

2 years agoMerge branch 'fix-591'
Daniele Varrazzo [Mon, 24 Jul 2023 10:18:04 +0000 (11:18 +0100)] 
Merge branch 'fix-591'

2 years agofix: fix possible errors calling __repr__ from __del__.
Daniele Varrazzo [Sun, 23 Jul 2023 19:33:05 +0000 (20:33 +0100)] 
fix: fix possible errors calling __repr__ from __del__.

The errors get ignored but print a warning on program exit and eclipse a
genuine warning.

The error is caused by the `pq.misc` module getting gc'd on interpreter
shutdown before `connection_summary()` is called. The solution is to
import `connection_summary` in the module namespace, which is similar to
the solution that proved working for #198. It is less robust than the
solution used by the Python devs to import the function in the method
via an argument default, but it should work adequately (as nobody
complained about #198 anymore).

In #591 discussion, I proposed that connection_summary is too complex to
be considered safe to call on __del__. Actually, looking at it, it seems
innocent enough, as it only calls objects methods, no functions from
module namespaces. As a consequence we assume that this commit fixes the
issue. As I can't reproduce it, will ask the OP if this is the case.

Close #591.