|
12 | 12 |
|
13 | 13 | .. changelog::
|
14 | 14 | :version: 1.3.13
|
15 |
| - :include_notes_from: unreleased_13 |
| 15 | + :released: January 22, 2020 |
| 16 | + |
| 17 | + .. change:: |
| 18 | + :tags: bug, postgresql |
| 19 | + :tickets: 5039 |
| 20 | + |
| 21 | + Fixed issue where the PostgreSQL dialect would fail to parse a reflected |
| 22 | + CHECK constraint that was a boolean-valued function (as opposed to a |
| 23 | + boolean-valued expression). |
| 24 | + |
| 25 | + .. change:: |
| 26 | + :tags: bug, ext |
| 27 | + :tickets: 5086 |
| 28 | + |
| 29 | + Fixed bug in sqlalchemy.ext.serializer where a unique |
| 30 | + :class:`.BindParameter` object could conflict with itself if it were |
| 31 | + present in the mapping itself, as well as the filter condition of the |
| 32 | + query, as one side would be used against the non-deserialized version and |
| 33 | + the other side would use the deserialized version. Logic is added to |
| 34 | + :class:`.BindParameter` similar to its "clone" method which will uniquify |
| 35 | + the parameter name upon deserialize so that it doesn't conflict with its |
| 36 | + original. |
| 37 | + |
| 38 | + |
| 39 | + .. change:: |
| 40 | + :tags: usecase, sql |
| 41 | + :tickets: 5079 |
| 42 | + |
| 43 | + A function created using :class:`.GenericFunction` can now specify that the |
| 44 | + name of the function should be rendered with or without quotes by assigning |
| 45 | + the :class:`.quoted_name` construct to the .name element of the object. |
| 46 | + Prior to 1.3.4, quoting was never applied to function names, and some |
| 47 | + quoting was introduced in :ticket:`4467` but no means to force quoting for |
| 48 | + a mixed case name was available. Additionally, the :class:`.quoted_name` |
| 49 | + construct when used as the name will properly register its lowercase name |
| 50 | + in the function registry so that the name continues to be available via the |
| 51 | + ``func.`` registry. |
| 52 | + |
| 53 | + .. seealso:: |
| 54 | + |
| 55 | + :class:`.GenericFunction` |
| 56 | + |
| 57 | + |
| 58 | + .. change:: |
| 59 | + :tags: bug, engine |
| 60 | + :tickets: 5048 |
| 61 | + |
| 62 | + Fixed issue where the collection of value processors on a |
| 63 | + :class:`.Compiled` object would be mutated when "expanding IN" parameters |
| 64 | + were used with a datatype that has bind value processors; in particular, |
| 65 | + this would mean that when using statement caching and/or baked queries, the |
| 66 | + same compiled._bind_processors collection would be mutated concurrently. |
| 67 | + Since these processors are the same function for a given bind parameter |
| 68 | + namespace every time, there was no actual negative effect of this issue, |
| 69 | + however, the execution of a :class:`.Compiled` object should never be |
| 70 | + causing any changes in its state, especially given that they are intended |
| 71 | + to be thread-safe and reusable once fully constructed. |
| 72 | + |
| 73 | + |
| 74 | + .. change:: |
| 75 | + :tags: tests, postgresql |
| 76 | + :tickets: 5057 |
| 77 | + |
| 78 | + Improved detection of two phase transactions requirement for the PostgreSQL |
| 79 | + database by testing that max_prepared_transactions is set to a value |
| 80 | + greater than 0. Pull request courtesy Federico Caselli. |
| 81 | + |
| 82 | + |
| 83 | + .. change:: |
| 84 | + :tags: bug, orm, engine |
| 85 | + :tickets: 5056, 5050, 5071 |
| 86 | + |
| 87 | + Added test support and repaired a wide variety of unnecessary reference |
| 88 | + cycles created for short-lived objects, mostly in the area of ORM queries. |
| 89 | + Thanks much to Carson Ip for the help on this. |
| 90 | + |
| 91 | + |
| 92 | + .. change:: |
| 93 | + :tags: orm, bug |
| 94 | + :tickets: 5107 |
| 95 | + |
| 96 | + Fixed regression in loader options introduced in 1.3.0b3 via :ticket:`4468` |
| 97 | + where the ability to create a loader option using |
| 98 | + :meth:`.PropComparator.of_type` targeting an aliased entity that is an |
| 99 | + inheriting subclass of the entity which the preceding relationship refers |
| 100 | + to would fail to produce a matching path. See also :ticket:`5082` fixed |
| 101 | + in this same release which involves a similar kind of issue. |
| 102 | + |
| 103 | + .. change:: |
| 104 | + :tags: bug, tests |
| 105 | + :tickets: 4946 |
| 106 | + |
| 107 | + Fixed a few test failures which would occur on Windows due to SQLite file |
| 108 | + locking issues, as well as some timing issues in connection pool related |
| 109 | + tests; pull request courtesy Federico Caselli. |
| 110 | + |
| 111 | + |
| 112 | + .. change:: |
| 113 | + :tags: orm, bug |
| 114 | + :tickets: 5082 |
| 115 | + |
| 116 | + Fixed regression in joined eager loading introduced in 1.3.0b3 via |
| 117 | + :ticket:`4468` where the ability to create a joined option across a |
| 118 | + :func:`.with_polymorphic` into a polymorphic subclass using |
| 119 | + :meth:`.RelationshipProperty.of_type` and then further along regular mapped |
| 120 | + relationships would fail as the polymorphic subclass would not add itself |
| 121 | + to the load path in a way that could be located by the loader strategy. A |
| 122 | + tweak has been made to resolve this scenario. |
| 123 | + |
| 124 | + |
| 125 | + .. change:: |
| 126 | + :tags: performance, orm |
| 127 | + |
| 128 | + Identified a performance issue in the system by which a join is constructed |
| 129 | + based on a mapped relationship. The clause adaption system would be used |
| 130 | + for the majority of join expressions including in the common case where no |
| 131 | + adaptation is needed. The conditions under which this adaptation occur |
| 132 | + have been refined so that average non-aliased joins along a simple |
| 133 | + relationship without a "secondary" table use about 70% less function calls. |
| 134 | + |
| 135 | + |
| 136 | + .. change:: |
| 137 | + :tags: usecase, postgresql |
| 138 | + :tickets: 5040 |
| 139 | + |
| 140 | + Added support for prefixes to the :class:`.CTE` construct, to allow |
| 141 | + support for Postgresql 12 "MATERIALIZED" and "NOT MATERIALIZED" phrases. |
| 142 | + Pull request courtesy Marat Sharafutdinov. |
| 143 | + |
| 144 | + .. seealso:: |
| 145 | + |
| 146 | + :meth:`.HasCTE.cte` |
| 147 | + |
| 148 | + .. change:: |
| 149 | + :tags: bug, mssql |
| 150 | + :tickets: 5045 |
| 151 | + |
| 152 | + Fixed issue where a timezone-aware ``datetime`` value being converted to |
| 153 | + string for use as a parameter value of a :class:`.mssql.DATETIMEOFFSET` |
| 154 | + column was omitting the fractional seconds. |
| 155 | + |
| 156 | + .. change:: |
| 157 | + :tags: bug, orm |
| 158 | + :tickets: 5068 |
| 159 | + |
| 160 | + Repaired a warning in the ORM flush process that was not covered by test |
| 161 | + coverage when deleting objects that use the "version_id" feature. This |
| 162 | + warning is generally unreachable unless using a dialect that sets the |
| 163 | + "supports_sane_rowcount" flag to False, which is not typically the case |
| 164 | + however is possible for some MySQL configurations as well as older Firebird |
| 165 | + drivers, and likely some third party dialects. |
| 166 | + |
| 167 | + .. change:: |
| 168 | + :tags: bug, orm |
| 169 | + :tickets: 5065 |
| 170 | + |
| 171 | + Fixed bug where usage of joined eager loading would not properly wrap the |
| 172 | + query inside of a subquery when :meth:`.Query.group_by` were used against |
| 173 | + the query. When any kind of result-limiting approach is used, such as |
| 174 | + DISTINCT, LIMIT, OFFSET, joined eager loading embeds the row-limited query |
| 175 | + inside of a subquery so that the collection results are not impacted. For |
| 176 | + some reason, the presence of GROUP BY was never included in this criterion, |
| 177 | + even though it has a similar effect as using DISTINCT. Additionally, the |
| 178 | + bug would prevent using GROUP BY at all for a joined eager load query for |
| 179 | + most database platforms which forbid non-aggregated, non-grouped columns |
| 180 | + from being in the query, as the additional columns for the joined eager |
| 181 | + load would not be accepted by the database. |
| 182 | + |
| 183 | + |
16 | 184 |
|
17 | 185 | .. changelog::
|
18 | 186 | :version: 1.3.12
|
|
0 commit comments