|
12 | 12 |
|
13 | 13 | .. changelog:: |
14 | 14 | :version: 1.3.3 |
15 | | - :include_notes_from: unreleased_13 |
| 15 | + :released: April 15, 2019 |
| 16 | + |
| 17 | + .. change:: |
| 18 | + :tags: bug, postgresql |
| 19 | + :tickets: 4601 |
| 20 | + |
| 21 | + Fixed regression from release 1.3.2 caused by :ticket:`4562` where a URL |
| 22 | + that contained only a query string and no hostname, such as for the |
| 23 | + purposes of specifying a service file with connection information, would no |
| 24 | + longer be propagated to psycopg2 properly. The change in :ticket:`4562` |
| 25 | + has been adjusted to further suit psycopg2's exact requirements, which is |
| 26 | + that if there are any connection parameters whatsoever, the "dsn" parameter |
| 27 | + is no longer required, so in this case the query string parameters are |
| 28 | + passed alone. |
| 29 | + |
| 30 | + .. change:: |
| 31 | + :tags: bug, pool |
| 32 | + :tickets: 4585 |
| 33 | + |
| 34 | + Fixed behavioral regression as a result of deprecating the "use_threadlocal" |
| 35 | + flag for :class:`.Pool`, where the :class:`.SingletonThreadPool` no longer |
| 36 | + makes use of this option which causes the "rollback on return" logic to take |
| 37 | + place when the same :class:`.Engine` is used multiple times in the context |
| 38 | + of a transaction to connect or implicitly execute, thereby cancelling the |
| 39 | + transaction. While this is not the recommended way to work with engines |
| 40 | + and connections, it is nonetheless a confusing behavioral change as when |
| 41 | + using :class:`.SingletonThreadPool`, the transaction should stay open |
| 42 | + regardless of what else is done with the same engine in the same thread. |
| 43 | + The ``use_threadlocal`` flag remains deprecated however the |
| 44 | + :class:`.SingletonThreadPool` now implements its own version of the same |
| 45 | + logic. |
| 46 | + |
| 47 | + |
| 48 | + .. change:: |
| 49 | + :tags: bug, orm |
| 50 | + :tickets: 4584 |
| 51 | + |
| 52 | + Fixed 1.3 regression in new "ambiguous FROMs" query logic introduced in |
| 53 | + :ref:`change_4365` where a :class:`.Query` that explicitly places an entity |
| 54 | + in the FROM clause with :meth:`.Query.select_from` and also joins to it |
| 55 | + using :meth:`.Query.join` would later cause an "ambiguous FROM" error if |
| 56 | + that entity were used in additional joins, as the entity appears twice in |
| 57 | + the "from" list of the :class:`.Query`. The fix resolves this ambiguity by |
| 58 | + folding the standalone entity into the join that it's already a part of in |
| 59 | + the same way that ultimately happens when the SELECT statement is rendered. |
| 60 | + |
| 61 | + .. change:: |
| 62 | + :tags: bug, ext |
| 63 | + :tickets: 4603 |
| 64 | + |
| 65 | + Fixed bug where using ``copy.copy()`` or ``copy.deepcopy()`` on |
| 66 | + :class:`.MutableList` would cause the items within the list to be |
| 67 | + duplicated, due to an inconsistency in how Python pickle and copy both make |
| 68 | + use of ``__getstate__()`` and ``__setstate__()`` regarding lists. In order |
| 69 | + to resolve, a ``__reduce_ex__`` method had to be added to |
| 70 | + :class:`.MutableList`. In order to maintain backwards compatibility with |
| 71 | + existing pickles based on ``__getstate__()``, the ``__setstate__()`` method |
| 72 | + remains as well; the test suite asserts that pickles made against the old |
| 73 | + version of the class can still be deserialized by the pickle module. |
| 74 | + |
| 75 | + .. change:: |
| 76 | + :tags: bug, orm |
| 77 | + :tickets: 4606 |
| 78 | + |
| 79 | + Adjusted the :meth:`.Query.filter_by` method to not call :func:`.and()` |
| 80 | + internally against multiple criteria, instead passing it off to |
| 81 | + :meth:`.Query.filter` as a series of criteria, instead of a single criteria. |
| 82 | + This allows :meth:`.Query.filter_by` to defer to :meth:`.Query.filter`'s |
| 83 | + treatment of variable numbers of clauses, including the case where the list |
| 84 | + is empty. In this case, the :class:`.Query` object will not have a |
| 85 | + ``.whereclause``, which allows subsequent "no whereclause" methods like |
| 86 | + :meth:`.Query.select_from` to behave consistently. |
| 87 | + |
| 88 | + .. change:: |
| 89 | + :tags: bug, mssql |
| 90 | + :tickets: 4587 |
| 91 | + |
| 92 | + Fixed issue in SQL Server dialect where if a bound parameter were present in |
| 93 | + an ORDER BY expression that would ultimately not be rendered in the SQL |
| 94 | + Server version of the statement, the parameters would still be part of the |
| 95 | + execution parameters, leading to DBAPI-level errors. Pull request courtesy |
| 96 | + Matt Lewellyn. |
16 | 97 |
|
17 | 98 | .. changelog:: |
18 | 99 | :version: 1.3.2 |
|
0 commit comments