@@ -15,7 +15,92 @@ This document details individual issue-level changes made throughout
15
15
16
16
.. changelog ::
17
17
:version: 1.4.0b3
18
- :include_notes_from: unreleased_14
18
+ :released: February 15, 2021
19
+
20
+ .. change ::
21
+ :tags: bug, orm
22
+ :tickets: 5933
23
+
24
+ Fixed issue in new 1.4/2.0 style ORM queries where a statement-level label
25
+ style would not be preserved in the keys used by result rows; this has been
26
+ applied to all combinations of Core/ORM columns / session vs. connection
27
+ etc. so that the linkage from statement to result row is the same in all
28
+ cases. As part of this change, the labeling of column expressions
29
+ in rows has been improved to retain the original name of the ORM
30
+ attribute even if used in a subquery.
31
+
32
+
33
+
34
+
35
+ .. change ::
36
+ :tags: bug, sql
37
+ :tickets: 5924
38
+
39
+ Fixed bug where the "cartesian product" assertion was not correctly
40
+ accommodating for joins between tables that relied upon the use of LATERAL
41
+ to connect from a subquery to another subquery in the enclosing context.
42
+
43
+ .. change ::
44
+ :tags: bug, sql
45
+ :tickets: 5934
46
+
47
+ Fixed 1.4 regression where the :meth: `_functions.Function.in_ ` method was
48
+ not covered by tests and failed to function properly in all cases.
49
+
50
+ .. change ::
51
+ :tags: bug, engine, postgresql
52
+ :tickets: 5941
53
+
54
+ Continued with the improvement made as part of :ticket: `5653 ` to further
55
+ support bound parameter names, including those generated against column
56
+ names, for names that include colons, parenthesis, and question marks, as
57
+ well as improved test support, so that bound parameter names even if they
58
+ are auto-derived from column names should have no problem including for
59
+ parenthesis in psycopg2's "pyformat" style.
60
+
61
+ As part of this change, the format used by the asyncpg DBAPI adapter (which
62
+ is local to SQLAlchemy's asyncpg dialect) has been changed from using
63
+ "qmark" paramstyle to "format", as there is a standard and internally
64
+ supported SQL string escaping style for names that use percent signs with
65
+ "format" style (i.e. to double percent signs), as opposed to names that use
66
+ question marks with "qmark" style (where an escaping system is not defined
67
+ by pep-249 or Python).
68
+
69
+ .. seealso ::
70
+
71
+ :ref: `change_5941 `
72
+
73
+ .. change ::
74
+ :tags: sql, usecase, postgresql, sqlite
75
+ :tickets: 5939
76
+
77
+ Enhance ``set_ `` keyword of :class: `.OnConflictDoUpdate ` to accept a
78
+ :class: `.ColumnCollection `, such as the ``.c. `` collection from a
79
+ :class: `Selectable `, or the ``.excluded `` contextual object.
80
+
81
+ .. change ::
82
+ :tags: feature, orm
83
+
84
+ The ORM used in :term: `2.0 style ` can now return ORM objects from the rows
85
+ returned by an UPDATE..RETURNING or INSERT..RETURNING statement, by
86
+ supplying the construct to :meth: `_sql.Select.from_statement ` in an ORM
87
+ context.
88
+
89
+ .. seealso ::
90
+
91
+ :ref: `orm_dml_returning_objects `
92
+
93
+
94
+
95
+ .. change ::
96
+ :tags: bug, sql
97
+ :tickets: 5935
98
+
99
+ Fixed regression where use of an arbitrary iterable with the
100
+ :func: `_sql.select ` function was not working, outside of plain lists. The
101
+ forwards/backwards compatibility logic here now checks for a wider range of
102
+ incoming "iterable" types including that a ``.c `` collection from a
103
+ selectable can be passed directly. Pull request compliments of Oliver Rice.
19
104
20
105
.. changelog ::
21
106
:version: 1.4.0b2
0 commit comments