~ubuntu-branches/debian/jessie/sqlalchemy/jessie

« back to all changes in this revision

Viewing changes to doc/_sources/changelog/changelog_08.txt

  • Committer: Package Import Robot
  • Author(s): Piotr Ożarowski
  • Date: 2013-10-28 22:29:40 UTC
  • mfrom: (1.4.24)
  • Revision ID: package-import@ubuntu.com-20131028222940-wvyqffl4g617caun
Tags: 0.8.3-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
0.8 Changelog
4
4
==============
5
5
 
 
6
.. changelog_imports::
 
7
 
 
8
    .. include:: changelog_07.rst
 
9
 
 
10
.. changelog::
 
11
    :version: 0.8.3
 
12
    :released: October 26, 2013
 
13
 
 
14
    .. change::
 
15
        :tags: bug, oracle
 
16
        :tickets: 2853
 
17
        :versions: 0.9.0
 
18
 
 
19
        Fixed bug where Oracle table reflection using synonyms would fail
 
20
        if the synonym and the table were in different remote schemas.
 
21
        Patch to fix courtesy Kyle Derr.
 
22
 
 
23
    .. change::
 
24
        :tags: bug, sql
 
25
        :tickets: 2849
 
26
        :versions: 0.9.0
 
27
 
 
28
        Fixed bug where :func:`.type_coerce` would not interpret ORM
 
29
        elements with a ``__clause_element__()`` method properly.
 
30
 
 
31
    .. change::
 
32
        :tags: bug, sql
 
33
        :tickets: 2842
 
34
        :versions: 0.9.0
 
35
 
 
36
        The :class:`.Enum` and :class:`.Boolean` types now bypass
 
37
        any custom (e.g. TypeDecorator) type in use when producing the
 
38
        CHECK constraint for the "non native" type.  This so that the custom type
 
39
        isn't involved in the expression within the CHECK, since this
 
40
        expression is against the "impl" value and not the "decorated" value.
 
41
 
 
42
    .. change::
 
43
        :tags: bug, postgresql
 
44
        :tickets: 2844
 
45
        :versions: 0.9.0
 
46
 
 
47
        Removed a 128-character truncation from the reflection of the
 
48
        server default for a column; this code was original from
 
49
        PG system views which truncated the string for readability.
 
50
 
 
51
    .. change::
 
52
        :tags: bug, mysql
 
53
        :tickets: 2721, 2839
 
54
        :versions: 0.9.0
 
55
 
 
56
        The change in :ticket:`2721`, which is that the ``deferrable`` keyword
 
57
        of :class:`.ForeignKeyConstraint` is silently ignored on the MySQL
 
58
        backend, will be reverted as of 0.9; this keyword will now render again, raising
 
59
        errors on MySQL as it is not understood - the same behavior will also
 
60
        apply to the ``initially`` keyword.  In 0.8, the keywords will remain
 
61
        ignored but a warning is emitted.   Additionally, the ``match`` keyword
 
62
        now raises a :class:`.CompileError` on 0.9 and emits a warning on 0.8;
 
63
        this keyword is not only silently ignored by MySQL but also breaks
 
64
        the ON UPDATE/ON DELETE options.
 
65
 
 
66
        To use a :class:`.ForeignKeyConstraint`
 
67
        that does not render or renders differently on MySQL, use a custom
 
68
        compilation option.  An example of this usage has been added to the
 
69
        documentation, see :ref:`mysql_foreign_keys`.
 
70
 
 
71
    .. change::
 
72
        :tags: bug, sql
 
73
        :tickets: 2825
 
74
        :versions: 0.9.0
 
75
 
 
76
        The ``.unique`` flag on :class:`.Index` could be produced as ``None``
 
77
        if it was generated from a :class:`.Column` that didn't specify ``unique``
 
78
        (where it defaults to ``None``).  The flag will now always be ``True`` or
 
79
        ``False``.
 
80
 
 
81
    .. change::
 
82
        :tags: feature, orm
 
83
        :tickets: 2836
 
84
        :versions: 0.9.0
 
85
 
 
86
        Added new option to :func:`.relationship` ``distinct_target_key``.
 
87
        This enables the subquery eager loader strategy to apply a DISTINCT
 
88
        to the innermost SELECT subquery, to assist in the case where
 
89
        duplicate rows are generated by the innermost query which corresponds
 
90
        to this relationship (there's not yet a general solution to the issue
 
91
        of dupe rows within subquery eager loading, however, when joins outside
 
92
        of the innermost subquery produce dupes).  When the flag
 
93
        is set to ``True``, the DISTINCT is rendered unconditionally, and when
 
94
        it is set to ``None``, DISTINCT is rendered if the innermost relationship
 
95
        targets columns that do not comprise a full primary key.
 
96
        The option defaults to False in 0.8 (e.g. off by default in all cases),
 
97
        None in 0.9 (e.g. automatic by default).   Thanks to Alexander Koval
 
98
        for help with this.
 
99
 
 
100
    .. change::
 
101
        :tags: bug, mysql
 
102
        :tickets: 2515
 
103
        :versions: 0.9.0
 
104
 
 
105
        MySQL-connector dialect now allows options in the create_engine
 
106
        query string to override those defaults set up in the connect,
 
107
        including "buffered" and "raise_on_warnings".
 
108
 
 
109
    .. change::
 
110
        :tags: bug, postgresql
 
111
        :tickets: 2742
 
112
        :versions: 0.9.0
 
113
 
 
114
        Parenthesis will be applied to a compound SQL expression as
 
115
        rendered in the column list of a CREATE INDEX statement.
 
116
 
 
117
    .. change::
 
118
        :tags: bug, sql
 
119
        :tickets: 2742
 
120
        :versions: 0.9.0
 
121
 
 
122
        Fixed bug in default compiler plus those of postgresql, mysql, and
 
123
        mssql to ensure that any literal SQL expression values are
 
124
        rendered directly as literals, instead of as bound parameters,
 
125
        within a CREATE INDEX statement.  This also changes the rendering
 
126
        scheme for other DDL such as constraints.
 
127
 
 
128
    .. change::
 
129
        :tags: bug, sql
 
130
        :tickets: 2815
 
131
        :versions: 0.9.0
 
132
 
 
133
        A :func:`.select` that is made to refer to itself in its FROM clause,
 
134
        typically via in-place mutation, will raise an informative error
 
135
        message rather than causing a recursion overflow.
 
136
 
 
137
    .. change::
 
138
        :tags: bug, orm
 
139
        :tickets: 2813
 
140
        :versions: 0.9.0
 
141
 
 
142
        Fixed bug where using an annotation such as :func:`.remote` or
 
143
        :func:`.foreign` on a :class:`.Column` before association with a parent
 
144
        :class:`.Table` could produce issues related to the parent table not
 
145
        rendering within joins, due to the inherent copy operation performed
 
146
        by an annotation.
 
147
 
 
148
    .. change::
 
149
        :tags: bug, sql
 
150
        :tickets: 2831
 
151
 
 
152
        Non-working "schema" argument on :class:`.ForeignKey` is deprecated;
 
153
        raises a warning.  Removed in 0.9.
 
154
 
 
155
    .. change::
 
156
        :tags: bug, postgresql
 
157
        :tickets: 2819
 
158
        :versions: 0.9.0
 
159
 
 
160
        Fixed bug where Postgresql version strings that had a prefix preceding
 
161
        the words "Postgresql" or "EnterpriseDB" would not parse.
 
162
        Courtesy Scott Schaefer.
 
163
 
 
164
    .. change::
 
165
        :tags: feature, engine
 
166
        :tickets: 2821
 
167
        :versions: 0.9.0
 
168
 
 
169
        ``repr()`` for the :class:`.URL` of an :class:`.Engine`
 
170
        will now conceal the password using asterisks.
 
171
        Courtesy Gunnlaugur Þór Briem.
 
172
 
 
173
    .. change::
 
174
        :tags: bug, orm
 
175
        :tickets: 2818
 
176
        :versions: 0.9.0
 
177
 
 
178
        Fixed bug where :meth:`.Query.exists` failed to work correctly
 
179
        without any WHERE criterion.  Courtesy Vladimir Magamedov.
 
180
 
 
181
    .. change::
 
182
        :tags: bug, sql
 
183
        :tickets: 2811
 
184
        :versions: 0.9.0
 
185
 
 
186
        Fixed bug where using the ``column_reflect`` event to change the ``.key``
 
187
        of the incoming :class:`.Column` would prevent primary key constraints,
 
188
        indexes, and foreign key constraints from being correctly reflected.
 
189
 
 
190
    .. change::
 
191
        :tags: feature
 
192
        :versions: 0.9.0
 
193
 
 
194
        Added a new flag ``system=True`` to :class:`.Column`, which marks
 
195
        the column as a "system" column which is automatically made present
 
196
        by the database (such as Postgresql ``oid`` or ``xmin``).  The
 
197
        column will be omitted from the ``CREATE TABLE`` statement but will
 
198
        otherwise be available for querying.   In addition, the
 
199
        :class:`.CreateColumn` construct can be appled to a custom
 
200
        compilation rule which allows skipping of columns, by producing
 
201
        a rule that returns ``None``.
 
202
 
 
203
    .. change::
 
204
        :tags: bug, orm
 
205
        :tickets: 2779
 
206
 
 
207
        Backported a change from 0.9 whereby the iteration of a hierarchy
 
208
        of mappers used in polymorphic inheritance loads is sorted,
 
209
        which allows the SELECT statements generated for polymorphic queries
 
210
        to have deterministic rendering, which in turn helps with caching
 
211
        schemes that cache on the SQL string itself.
 
212
 
 
213
    .. change::
 
214
        :tags: bug, orm
 
215
        :tickets: 2794
 
216
        :versions: 0.9.0
 
217
 
 
218
        Fixed a potential issue in an ordered sequence implementation used
 
219
        by the ORM to iterate mapper hierarchies; under the Jython interpreter
 
220
        this implementation wasn't ordered, even though cPython and Pypy
 
221
        maintained ordering.
 
222
 
 
223
    .. change::
 
224
        :tags: bug, examples
 
225
        :versions: 0.9.0
 
226
 
 
227
        Added "autoincrement=False" to the history table created in the
 
228
        versioning example, as this table shouldn't have autoinc on it
 
229
        in any case, courtesy Patrick Schmid.
 
230
 
 
231
    .. change::
 
232
        :tags: bug, sql
 
233
        :versions: 0.9.0
 
234
 
 
235
        The :meth:`.Operators.notin_` operator added in 0.8 now properly
 
236
        produces the negation of the expression "IN" returns
 
237
        when used against an empty collection.
 
238
 
 
239
    .. change::
 
240
        :tags: feature, examples
 
241
        :versions: 0.9.0
 
242
 
 
243
        Improved the examples in ``examples/generic_associations``, including
 
244
        that ``discriminator_on_association.py`` makes use of single table
 
245
        inheritance do the work with the "discriminator".  Also
 
246
        added a true "generic foreign key" example, which works similarly
 
247
        to other popular frameworks in that it uses an open-ended integer
 
248
        to point to any other table, foregoing traditional referential
 
249
        integrity.  While we don't recommend this pattern, information wants
 
250
        to be free.
 
251
 
 
252
    .. change::
 
253
        :tags: feature, orm, declarative
 
254
        :versions: 0.9.0
 
255
 
 
256
        Added a convenience class decorator :func:`.as_declarative`, is
 
257
        a wrapper for :func:`.declarative_base` which allows an existing base
 
258
        class to be applied using a nifty class-decorated approach.
 
259
 
 
260
    .. change::
 
261
        :tags: bug, orm
 
262
        :tickets: 2786
 
263
        :versions: 0.9.0
 
264
 
 
265
        Fixed bug in ORM-level event registration where the "raw" or
 
266
        "propagate" flags could potentially be mis-configured in some
 
267
        "unmapped base class" configurations.
 
268
 
 
269
    .. change::
 
270
        :tags: bug, orm
 
271
        :tickets: 2778
 
272
        :versions: 0.9.0
 
273
 
 
274
        A performance fix related to the usage of the :func:`.defer` option
 
275
        when loading mapped entities.   The function overhead of applying
 
276
        a per-object deferred callable to an instance at load time was
 
277
        significantly higher than that of just loading the data from the row
 
278
        (note that ``defer()`` is meant to reduce DB/network overhead, not
 
279
        necessarily function call count); the function call overhead is now
 
280
        less than that of loading data from the column in all cases.  There
 
281
        is also a reduction in the number of "lazy callable" objects created
 
282
        per load from N (total deferred values in the result) to 1 (total
 
283
        number of deferred cols).
 
284
 
 
285
    .. change::
 
286
        :tags: bug, sqlite
 
287
        :tickets: 2781
 
288
        :versions: 0.9.0
 
289
 
 
290
        The newly added SQLite DATETIME arguments storage_format and
 
291
        regexp apparently were not fully implemented correctly; while the
 
292
        arguments were accepted, in practice they would have no effect;
 
293
        this has been fixed.
 
294
 
 
295
    .. change::
 
296
        :tags: bug, sql, postgresql
 
297
        :tickets: 2780
 
298
        :versions: 0.9.0
 
299
 
 
300
        Fixed bug where the expression system relied upon the ``str()``
 
301
        form of a some expressions when referring to the ``.c`` collection
 
302
        on a ``select()`` construct, but the ``str()`` form isn't available
 
303
        since the element relies on dialect-specific compilation constructs,
 
304
        notably the ``__getitem__()`` operator as used with a Postgresql
 
305
        ``ARRAY`` element.  The fix also adds a new exception class
 
306
        :class:`.UnsupportedCompilationError` which is raised in those cases
 
307
        where a compiler is asked to compile something it doesn't know
 
308
        how to.
 
309
 
 
310
    .. change::
 
311
        :tags: bug, engine, oracle
 
312
        :tickets: 2776
 
313
        :versions: 0.9.0
 
314
 
 
315
        Dialect.initialize() is not called a second time if an :class:`.Engine`
 
316
        is recreated, due to a disconnect error.   This fixes a particular
 
317
        issue in the Oracle 8 dialect, but in general the dialect.initialize()
 
318
        phase should only be once per dialect.
 
319
 
 
320
    .. change::
 
321
        :tags: feature, sql
 
322
        :tickets: 722
 
323
 
 
324
        Added new method to the :func:`.insert` construct
 
325
        :meth:`.Insert.from_select`.  Given a list of columns and
 
326
        a selectable, renders ``INSERT INTO (table) (columns) SELECT ..``.
 
327
 
 
328
    .. change::
 
329
        :tags: feature, sql
 
330
        :versions: 0.9.0
 
331
 
 
332
        The :func:`.update`, :func:`.insert`, and :func:`.delete` constructs
 
333
        will now interpret ORM entities as target tables clauses to be operated upon,
 
334
        e.g.::
 
335
 
 
336
            from sqlalchemy import insert, update, delete
 
337
 
 
338
            ins = insert(SomeMappedClass).values(x=5)
 
339
 
 
340
            del_ = delete(SomeMappedClass).where(SomeMappedClass.id == 5)
 
341
 
 
342
            upd = update(SomeMappedClass).where(SomeMappedClass.id == 5).values(name='ed')
 
343
 
 
344
    .. change::
 
345
        :tags: bug, orm
 
346
        :tickets: 2773
 
347
        :versions: 0.9.0
 
348
 
 
349
        Fixed bug whereby attribute history functions would fail
 
350
        when an object we moved from "persistent" to "pending"
 
351
        using the :func:`.make_transient` function, for operations
 
352
        involving collection-based backrefs.
 
353
 
 
354
    .. change::
 
355
        :tags: bug, engine, pool
 
356
        :tickets: 2772
 
357
        :versions: 0.9.0
 
358
 
 
359
        Fixed bug where :class:`.QueuePool` would lose the correct
 
360
        checked out count if an existing pooled connection failed to reconnect
 
361
        after an invalidate or recycle event.
 
362
 
6
363
.. changelog::
7
364
    :version: 0.8.2
8
365
    :released: July 3, 2013
10
367
    .. change::
11
368
        :tags: bug, mysql
12
369
        :tickets: 2768
 
370
        :versions: 0.9.0
13
371
 
14
372
        Fixed bug when using multi-table UPDATE where a supplemental
15
373
        table is a SELECT with its own bound parameters, where the positioning
19
377
    .. change::
20
378
        :tags: bug, sqlite
21
379
        :tickets: 2764
 
380
        :versions: 0.9.0
22
381
 
23
382
        Added :class:`.BIGINT` to the list of type names that can be
24
383
        reflected by the SQLite dialect; courtesy Russell Stuart.
26
385
    .. change::
27
386
        :tags: feature, orm, declarative
28
387
        :tickets: 2761
 
388
        :versions: 0.9.0
29
389
 
30
390
        ORM descriptors such as hybrid properties can now be referenced
31
391
        by name in a string argument used with ``order_by``,
35
395
    .. change::
36
396
        :tags: feature, firebird
37
397
        :tickets: 2763
 
398
        :versions: 0.9.0
38
399
 
39
400
        Added new flag ``retaining=True`` to the kinterbasdb and fdb dialects.
40
401
        This controls the value of the ``retaining`` flag sent to the
41
402
        ``commit()`` and ``rollback()`` methods of the DBAPI connection.
42
 
        Due to historical concerns, this flag defaults to ``True``, however
43
 
        in 0.9 this flag will be defaulted to ``False``.
 
403
        Due to historical concerns, this flag defaults to ``True`` in 0.8.2,
 
404
        however in 0.9.0 this flag defaults to ``False``.
44
405
 
45
406
    .. change::
46
407
        :tags: requirements
 
408
        :versions: 0.9.0
47
409
 
48
410
        The Python `mock <https://pypi.python.org/pypi/mock>`_ library
49
411
        is now required in order to run the unit test suite.  While part
54
416
    .. change::
55
417
        :tags: bug, orm
56
418
        :tickets: 2750
 
419
        :versions: 0.9.0
57
420
 
58
421
        A warning is emitted when trying to flush an object of an inherited
59
422
        class where the polymorphic discriminator has been assigned
62
425
    .. change::
63
426
        :tags: bug, postgresql
64
427
        :tickets: 2740
 
428
        :versions: 0.9.0
65
429
 
66
430
        The behavior of :func:`.extract` has been simplified on the
67
431
        Postgresql dialect to no longer inject a hardcoded ``::timestamp``
74
438
    .. change::
75
439
        :tags: bug, firebird
76
440
        :tickets: 2757
 
441
        :versions: 0.9.0
77
442
 
78
443
        Type lookup when reflecting the Firebird types LONG and
79
444
        INT64 has been fixed so that LONG is treated as INTEGER,
84
449
    .. change::
85
450
        :tags: bug, postgresql
86
451
        :tickets: 2766
 
452
        :versions: 0.9.0
87
453
 
88
454
        Fixed bug in HSTORE type where keys/values that contained
89
455
        backslashed quotes would not be escaped correctly when
93
459
    .. change::
94
460
        :tags: bug, postgresql
95
461
        :tickets: 2767
 
462
        :versions: 0.9.0
96
463
 
97
464
        Fixed bug where the order of columns in a multi-column
98
465
        Postgresql index would be reflected in the wrong order.
101
468
    .. change::
102
469
        :tags: bug, sql
103
470
        :tickets: 2746, 2668
 
471
        :versions: 0.9.0
104
472
 
105
473
        Multiple fixes to the correlation behavior of
106
474
        :class:`.Select` constructs, first introduced in 0.8.0:
135
503
 
136
504
    .. change::
137
505
        :tags: bug, ext
 
506
        :versions: 0.9.0
138
507
 
139
508
        Fixed bug whereby if a composite type were set up
140
509
        with a function instead of a class, the mutable extension
155
524
 
156
525
    .. change::
157
526
        :tags: feature, postgresql
 
527
        :versions: 0.9.0
158
528
 
159
529
        Support for Postgresql 9.2 range types has been added.
160
530
        Currently, no type translation is provided, so works
163
533
 
164
534
    .. change::
165
535
        :tags: bug, examples
 
536
        :versions: 0.9.0
166
537
 
167
538
        Fixed an issue with the "versioning" recipe whereby a many-to-one
168
539
        reference could produce a meaningless version for the target,
172
543
    .. change::
173
544
        :tags: feature, postgresql
174
545
        :tickets: 2072
 
546
        :versions: 0.9.0
175
547
 
176
548
        Added support for "AUTOCOMMIT" isolation when using the psycopg2
177
549
        DBAPI.   The keyword is available via the ``isolation_level``
180
552
    .. change::
181
553
        :tags: bug, orm
182
554
        :tickets: 2759
 
555
        :versions: 0.9.0
183
556
 
184
557
        Fixed bug in polymorphic SQL generation where multiple joined-inheritance
185
558
        entities against the same base class joined to each other as well
189
562
    .. change::
190
563
        :tags: bug, engine
191
564
        :pullreq: 6
 
565
        :versions: 0.9.0
192
566
 
193
567
        Fixed bug where the ``reset_on_return`` argument to various :class:`.Pool`
194
568
        implementations would not be propagated when the pool was regenerated.
197
571
    .. change::
198
572
        :tags: bug, orm
199
573
        :tickets: 2754
 
574
        :versions: 0.9.0
200
575
 
201
576
        Fixed bug where sending a composite attribute into :meth:`.Query.order_by`
202
577
        would produce a parenthesized expression not accepted by some databases.
204
579
    .. change::
205
580
        :tags: bug, orm
206
581
        :tickets: 2755
 
582
        :versions: 0.9.0
207
583
 
208
584
        Fixed the interaction between composite attributes and
209
585
        the :func:`.aliased` function.  Previously, composite attributes
213
589
    .. change::
214
590
        :tags: bug, mysql
215
591
        :tickets: 2715
 
592
        :versions: 0.9.0
216
593
 
217
594
        Added another conditional to the ``mysql+gaerdbms`` dialect to
218
595
        detect so-called "development" mode, where we should use the
221
598
    .. change::
222
599
        :tags: feature, mysql
223
600
        :tickets: 2704
 
601
        :versions: 0.9.0
224
602
 
225
603
        The ``mysql_length`` parameter used with :class:`.Index` can now
226
604
        be passed as a dictionary of column names/lengths, for use
230
608
    .. change::
231
609
        :tags: bug, mssql
232
610
        :tickets: 2747
 
611
        :versions: 0.9.0
233
612
 
234
613
        When querying the information schema on SQL Server 2000, removed
235
614
        a CAST call that was added in 0.8.1 to help with driver issues,
239
618
    .. change::
240
619
        :tags: bug, mysql
241
620
        :tickets: 2721
 
621
        :versions: 0.9.0
242
622
 
243
623
        The ``deferrable`` keyword argument on :class:`.ForeignKey` and
244
624
        :class:`.ForeignKeyConstraint` will not render the ``DEFERRABLE`` keyword
250
630
    .. change::
251
631
        :tags: bug, ext, orm
252
632
        :tickets: 2730
 
633
        :versions: 0.9.0
253
634
 
254
635
        Fixed bug where :class:`.MutableDict` didn't report a change event
255
636
        when ``clear()`` was called.
257
638
    .. change::
258
639
        :tags: bug, sql
259
640
        :tickets: 2738
 
641
        :versions: 0.9.0
260
642
 
261
643
        Fixed bug whereby joining a select() of a table "A" with multiple
262
644
        foreign key paths to a table "B", to that table "B", would fail
267
649
    .. change::
268
650
        :tags: bug, sql, reflection
269
651
        :tickets: 2728
 
652
        :versions: 0.9.0
270
653
 
271
654
        Fixed bug whereby using :meth:`.MetaData.reflect` across a remote
272
655
        schema as well as a local schema could produce wrong results
275
658
    .. change::
276
659
        :tags: bug, sql
277
660
        :tickets: 2726
 
661
        :versions: 0.9.0
278
662
 
279
663
        Removed the "not implemented" ``__iter__()`` call from the base
280
664
        :class:`.ColumnOperators` class, while this was introduced
615
999
      (obviously assuming the state of the superclass).
616
1000
 
617
1001
    .. change::
618
 
      :tags: bug, orm
619
 
      :tickets: 2699
620
 
 
621
 
      Fixed bug when a query of the form:
622
 
      ``query(SubClass).options(subqueryload(Baseclass.attrname))``,
623
 
      where ``SubClass`` is a joined inh of ``BaseClass``,
624
 
      would fail to apply the ``JOIN`` inside the subquery
625
 
      on the attribute load, producing a cartesian product.
626
 
      The populated results still tended to be correct as additional
627
 
      rows are just ignored, so this issue may be present as a
628
 
      performance degradation in applications that are
629
 
      otherwise working correctly.  Also in 0.7.11.
630
 
 
631
 
    .. change::
632
 
      :tags: bug, orm
633
 
      :tickets: 2689
634
 
 
635
 
      Fixed bug in unit of work whereby a joined-inheritance
636
 
      subclass could insert the row for the "sub" table
637
 
      before the parent table, if the two tables had no
638
 
      ForeignKey constraints set up between them.
639
 
      Also in 0.7.11.
640
 
 
641
 
    .. change::
642
1002
      :tags: bug, mssql
643
1003
      :pullreq: 47
644
1004
 
693
1053
      * :ref:`correlation_context_specific`
694
1054
 
695
1055
    .. change::
696
 
        :tags: feature, postgresql
697
 
        :tickets: 2676
698
 
 
699
 
      Added support for Postgresql's traditional SUBSTRING
700
 
      function syntax, renders as "SUBSTRING(x FROM y FOR z)"
701
 
      when regular ``func.substring()`` is used.
702
 
      Also in 0.7.11.  Courtesy Gunnlaugur Þór Briem.
703
 
 
704
 
    .. change::
705
1056
        :tags: feature, orm
706
1057
        :tickets: 2675
707
1058
 
1088
1439
    :released: December 14, 2012
1089
1440
 
1090
1441
    .. change::
1091
 
        :tags: sqlite, bug
1092
 
        :tickets: 2568
1093
 
 
1094
 
      More adjustment to this SQLite related issue which was released in
1095
 
      0.7.9, to intercept legacy SQLite quoting characters when reflecting
1096
 
      foreign keys.  In addition to intercepting double quotes, other
1097
 
      quoting characters such as brackets, backticks, and single quotes
1098
 
      are now also intercepted.  Also in 0.7.10.
1099
 
 
1100
 
    .. change::
1101
1442
        :tags: orm, bug
1102
1443
        :tickets: 2635
1103
1444
 
1168
1509
 
1169
1510
    .. change::
1170
1511
        :tags: sql, bug
1171
 
        :tickets: 2631
1172
 
 
1173
 
      Fixed bug where using server_onupdate=<FetchedValue|DefaultClause>
1174
 
      without passing the "for_update=True" flag would apply the default
1175
 
      object to the server_default, blowing away whatever was there.
1176
 
      The explicit for_update=True argument shouldn't be needed with this usage
1177
 
      (especially since the documentation shows an example without it being
1178
 
      used) so it is now arranged internally using a copy of the given default
1179
 
      object, if the flag isn't set to what corresponds to that argument.
1180
 
      Also in 0.7.10.
1181
 
 
1182
 
    .. change::
1183
 
        :tags: sql, bug
1184
1512
        :tickets: 2610
1185
1513
 
1186
1514
      Fixed bug whereby using a label_length on dialect that was smaller