diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-06-21 14:50:25 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-06-21 14:50:25 -0400 |
commit | aa43145f37d693969d34730835f834679e7a7ab4 (patch) | |
tree | 19ae7a2956afd5b45216a838b36a261e2d783cc9 | |
parent | bc15fb6066f570b3843617687262943815944659 (diff) | |
download | sqlalchemy-aa43145f37d693969d34730835f834679e7a7ab4.tar.gz |
- reorganize changes so that the 0.7 changelog is present fully underneath the 0.8
-rw-r--r-- | CHANGES | 415 |
1 files changed, 209 insertions, 206 deletions
@@ -6,6 +6,10 @@ CHANGES 0.8.0b1 ======= +Changes noted below are specific to version 0.8. +For changes that are in both 0.7 and 0.8, see below +underneath "0.7.xx". + - general - SQLAlchemy 0.8 now targets Python 2.5 and above. Python 2.4 is no longer supported. @@ -93,25 +97,6 @@ CHANGES Both features should be avoided, however. [ticket:2372] - - [bug] Fixed bug whereby subqueryload() from - a polymorphic mapping to a target would incur - a new invocation of the query for each - distinct class encountered in the polymorphic - result. [ticket:2480]. Also in 0.7.8. - - - [bug] Fixed issue in unit of work - whereby setting a non-None self-referential - many-to-one relationship to None - would fail to persist the change if the - former value was not already loaded. - [ticket:2477]. Also in 0.7.7 - - - [bug] Fixed bug in relationship comparisons - whereby calling unimplemented methods like - SomeClass.somerelationship.like() would - produce a recursion overflow, instead - of NotImplementedError. Also in 0.7.7. - - [bug] The "passive" flag on Session.is_modified() no longer has any effect. is_modified() in all cases looks only at local in-memory @@ -126,29 +111,6 @@ CHANGES would fail to function subsequent to this warning in any case. [ticket:2405] - - [bug] Fixed bug in declarative - whereby the precedence of columns - in a joined-table, composite - column (typically for id) would fail to - be correct if the columns contained - names distinct from their attribute - names. This would cause things like - primaryjoin conditions made against the - entity attributes to be incorrect. Related - to [ticket:1892] as this was supposed - to be part of that, this is [ticket:2491]. - Also in 0.7.8. - - - [feature] The 'objects' argument to - flush() is no longer deprecated, as some - valid use cases have been identified. - Also in 0.7.8. - - - [bug] Fixed identity_key() function which - was not accepting a scalar argument - for the identity. [ticket:2508]. Also - in 0.7.8. - - [feature] Query now "auto correlates" by default in the same way as select() does. Previously, a Query used as a subquery @@ -158,28 +120,6 @@ CHANGES outside. As always, correlate(None) disables correlation. [ticket:2179] - - [feature] Added prefix_with() method - to Query, calls upon select().prefix_with() - to allow placement of MySQL SELECT - directives in statements. Courtesy - Diana Clarke [ticket:2443] - also in 0.7.7. - - - [bug] Fixed bug in 0.7.6 introduced by - [ticket:2409] whereby column_mapped_collection - used against columns that were mapped as - joins or other indirect selectables - would fail to function. - also in 0.7.7. - - - [feature] Added new flag to @validates - include_removes. When True, collection - remove and attribute del events - will also be sent to the validation function, - which accepts an additional argument - "is_remove" when this flag is used. - also in 0.7.7. - - [feature] The after_attach event is now emitted after the object is established in Session.new or Session.identity_map @@ -191,52 +131,7 @@ CHANGES need autoflush w pre-attached object. [ticket:2464] - - [bug] Fixed bug whereby polymorphic_on - column that's not otherwise mapped on the - class would be incorrectly included - in a merge() operation, raising an error. - [ticket:2449] - also in 0.7.7. - - - [bug] Fixed bug in expression annotation - mechanics which could lead to incorrect - rendering of SELECT statements with aliases - and joins, particularly when using - column_property(). [ticket:2453] - also in 0.7.7. - - - [bug] Fixed bug which would prevent - OrderingList from being pickleable - [ticket:2454]. Courtesy Jeff Dairiki - also in 0.7.7. - - - [bug] Fixed bug whereby populate_existing - option would not propagate to subquery - eager loaders. [ticket:2497]. Also - in 0.7.8. - - engine - - [feature] Dramatic improvement in memory - usage of the event system; instance-level - collections are no longer created for a - particular type of event until - instance-level listeners are established - for that event. [ticket:2516] Also in 0.7.9. - - - [bug] Fixed memory leak in C version of - result proxy whereby DBAPIs which don't deliver - pure Python tuples for result rows would - fail to decrement refcounts correctly. - The most prominently affected DBAPI - is pyodbc. Also in 0.7.8. [ticket:2489] - - - [bug] Fixed bug affecting Py3K whereby - string positional parameters passed to - engine/connection execute() would fail to be - interpreted correctly, due to __iter__ - being present on Py3K string. - [ticket:2503]. Also in 0.7.8. - - [feature] Added a new system for registration of new dialects in-process without using an entrypoint. See the @@ -323,45 +218,6 @@ CHANGES column object itself, consistent with the behavior of label(column, None). [ticket:2168] - - [bug] Removed warning when Index is created - with no columns; while this might not be what - the user intended, it is a valid use case - as an Index could be a placeholder for just an - index of a certain name. - also in 0.7.7. - - - [feature] Added new connection event - dbapi_error(). Is called for all DBAPI-level - errors passing the original DBAPI exception - before SQLAlchemy modifies the state - of the cursor. - also in 0.7.7. - - - [bug] If conn.begin() fails when calling - "with engine.begin()", the newly acquired - Connection is closed explicitly before - propagating the exception onward normally. - also in 0.7.7. - - - [bug] Added BIGINT, BINARY, VARBINARY to - types.__all__, sqlalchemy namespaces, - plus tests to make sure new types - remain importable. [ticket:2474] - also in 0.7.7, [ticket:2499] also - in 0.7.8. - - - [bug] Repaired common table expression - rendering to function correctly when the - SELECT statement contains UNION or other - compound expressions, courtesy btbuilder. - [ticket:2490] Also in 0.7.8. - - - [bug] Fixed bug whereby append_column() - wouldn't function correctly on a cloned - select() construct, courtesy - Gunnlaugur Þór Briem. [ticket:2482] - Also in 0.7.8. - - sqlite - [feature] the SQLite date and time types have been overhauled to support a more open @@ -373,12 +229,6 @@ CHANGES Nathan Wright for the work and tests on this. [ticket:2363] - - [feature] Added SQLite execution option - "sqlite_raw_colnames=True", will bypass - attempts to remove "." from column names - returned by SQLite cursor.description. - [ticket:2475] Also in 0.7.7. - - mssql - [bug] removed legacy behavior whereby a column comparison to a scalar SELECT via @@ -389,12 +239,209 @@ CHANGES needs to be modified to use column.in_(select) explicitly. [ticket:2277] +- postgresql + + - [feature] postgresql.ARRAY features an optional + "dimension" argument, will assign a specific + number of dimensions to the array which will + render in DDL as ARRAY[][]..., also improves + performance of bind/result processing. + [ticket:2441] + +- mysql + - [bug] Dialect no longer emits expensive server + collations query, as well as server casing, + on first connect. These functions are still + available as semi-private. [ticket:2404] + +- oracle + - [bug] Quoting information is now passed along + from a Column with quote=True when generating + a same-named bound parameter to the bindparam() + object, as is the case in generated INSERT and UPDATE + statements, so that unknown reserved names can + be fully supported. [ticket:2437] + +- extensions + - [removed] The SQLSoup extension is removed from + SQLAlchemy, and is now an external project. + See http://pypi.python.org/pypi/sqlsoup . + [ticket:2262] + +0.7.7 - 0.7.xx +============== +0.8 development begins during 0.7.7 development. +All relevant bug fixes +and features listed below from version 0.7.7 on +are also present in 0.8. + +0.7.9 +===== +- engine + - [feature] Dramatic improvement in memory + usage of the event system; instance-level + collections are no longer created for a + particular type of event until + instance-level listeners are established + for that event. [ticket:2516] + +0.7.8 +===== +- orm + - [bug] Fixed bug whereby subqueryload() from + a polymorphic mapping to a target would incur + a new invocation of the query for each + distinct class encountered in the polymorphic + result. [ticket:2480] + + - [bug] Fixed bug in declarative + whereby the precedence of columns + in a joined-table, composite + column (typically for id) would fail to + be correct if the columns contained + names distinct from their attribute + names. This would cause things like + primaryjoin conditions made against the + entity attributes to be incorrect. Related + to [ticket:1892] as this was supposed + to be part of that, this is [ticket:2491]. + + - [feature] The 'objects' argument to + flush() is no longer deprecated, as some + valid use cases have been identified. + + - [bug] Fixed identity_key() function which + was not accepting a scalar argument + for the identity. [ticket:2508]. + + - [bug] Fixed bug whereby populate_existing + option would not propagate to subquery + eager loaders. [ticket:2497]. + +- sql + - [bug] added BIGINT to types.__all__, + BIGINT, BINARY, VARBINARY to sqlalchemy + module namespace, plus test to ensure + this breakage doesn't occur again. + [ticket:2499] + + - [bug] Repaired common table expression + rendering to function correctly when the + SELECT statement contains UNION or other + compound expressions, courtesy btbuilder. + [ticket:2490] + + - [bug] Fixed bug whereby append_column() + wouldn't function correctly on a cloned + select() construct, courtesy + Gunnlaugur Þór Briem. [ticket:2482] + +- engine + - [bug] Fixed memory leak in C version of + result proxy whereby DBAPIs which don't deliver + pure Python tuples for result rows would + fail to decrement refcounts correctly. + The most prominently affected DBAPI + is pyodbc. [ticket:2489] + + - [bug] Fixed bug affecting Py3K whereby + string positional parameters passed to + engine/connection execute() would fail to be + interpreted correctly, due to __iter__ + being present on Py3K string. + [ticket:2503]. + +- postgresql + - [bug] removed unnecessary table clause when + reflecting enums, [ticket:2510]. Courtesy + Gunnlaugur Þór Briem. + +- oracle + - [bug] Added ROWID to oracle.*, [ticket:2483] + +- mysql + - [feature] Added a new dialect for Google App + Engine. Courtesy Richie Foreman. [ticket:2484] + + +0.7.7 +===== +- orm + - [bug] Fixed issue in unit of work + whereby setting a non-None self-referential + many-to-one relationship to None + would fail to persist the change if the + former value was not already loaded. + [ticket:2477]. + + - [feature] Added prefix_with() method + to Query, calls upon select().prefix_with() + to allow placement of MySQL SELECT + directives in statements. Courtesy + Diana Clarke [ticket:2443] + + - [bug] Fixed bug in 0.7.6 introduced by + [ticket:2409] whereby column_mapped_collection + used against columns that were mapped as + joins or other indirect selectables + would fail to function. + + - [feature] Added new flag to @validates + include_removes. When True, collection + remove and attribute del events + will also be sent to the validation function, + which accepts an additional argument + "is_remove" when this flag is used. + + - [bug] Fixed bug whereby polymorphic_on + column that's not otherwise mapped on the + class would be incorrectly included + in a merge() operation, raising an error. + [ticket:2449] + + - [bug] Fixed bug in expression annotation + mechanics which could lead to incorrect + rendering of SELECT statements with aliases + and joins, particularly when using + column_property(). [ticket:2453] + + - [bug] Fixed bug which would prevent + OrderingList from being pickleable + [ticket:2454]. Courtesy Jeff Dairiki + + - [bug] Fixed bug in relationship comparisons + whereby calling unimplemented methods like + SomeClass.somerelationship.like() would + produce a recursion overflow, instead + of NotImplementedError. + +- sql + - [bug] Removed warning when Index is created + with no columns; while this might not be what + the user intended, it is a valid use case + as an Index could be a placeholder for just an + index of a certain name. + + - [feature] Added new connection event + dbapi_error(). Is called for all DBAPI-level + errors passing the original DBAPI exception + before SQLAlchemy modifies the state + of the cursor. + + - [bug] If conn.begin() fails when calling + "with engine.begin()", the newly acquired + Connection is closed explicitly before + propagating the exception onward normally. + + - [bug] Add BINARY, VARBINARY to types.__all__, + [ticket:2474] + +- mssql - [feature] Added interim create_engine flag supports_unicode_binds to PyODBC dialect, to force whether or not the dialect passes Python unicode literals to PyODBC or not. - also in 0.7.7. - [bug] Repaired the use_scope_identity create_engine() flag when using the pyodbc @@ -404,7 +451,6 @@ CHANGES INSERT to get at the last inserted ID, for those tables which have "implicit_returning" set to False. - also in 0.7.7. - [bug] UPDATE..FROM syntax with SQL Server requires that the updated table be present @@ -414,7 +460,6 @@ CHANGES in the FROM, when FROM is present in the first place. Courtesy sayap. [ticket:2468] - also in 0.7.7. - postgresql - [feature] Added new for_update/with_lockmode() @@ -424,22 +469,10 @@ CHANGES with_lockmode("read_nowait"). These emit "FOR SHARE" and "FOR SHARE NOWAIT", respectively. Courtesy Diana Clarke - [ticket:2445] Also in 0.7.7. - - - [feature] postgresql.ARRAY features an optional - "dimension" argument, will assign a specific - number of dimensions to the array which will - render in DDL as ARRAY[][]..., also improves - performance of bind/result processing. - [ticket:2441] + [ticket:2445] - [bug] removed unnecessary table clause when reflecting domains, [ticket:2473] - also in 0.7.7 - - - [bug] removed unnecessary table clause when - reflecting enums, [ticket:2510]. Courtesy - Gunnlaugur Þór Briem. Also in 0.7.8. - mysql - [bug] Fixed bug whereby column name inside @@ -447,13 +480,11 @@ CHANGES column with InnoDB would double quote a name that's a reserved word. Courtesy Jeff Dairiki. [ticket:2460] - also in 0.7.7. - [bug] Fixed bug whereby get_view_names() for "information_schema" schema would fail to retrieve views marked as "SYSTEM VIEW". courtesy Matthew Turland. - also in 0.7.7. - [bug] Fixed bug whereby if cast() is used on a SQL expression whose type is not supported @@ -462,42 +493,14 @@ CHANGES if the casted expression required that it be grouped; grouping is now applied to those expressions. [ticket:2467] - also in 0.7.7. - - - [bug] Dialect no longer emits expensive server - collations query, as well as server casing, - on first connect. These functions are still - available as semi-private. [ticket:2404] - - - [feature] Added a new dialect for Google App - Engine. Courtesy Richie Foreman. - Also in 0.7.8. [ticket:2484] - -- oracle - - [bug] Quoting information is now passed along - from a Column with quote=True when generating - a same-named bound parameter to the bindparam() - object, as is the case in generated INSERT and UPDATE - statements, so that unknown reserved names can - be fully supported. [ticket:2437] - - [bug] Added ROWID to oracle.*, [ticket:2483] - Also in 0.7.8. - -- extensions - - [removed] The SQLSoup extension is removed from - SQLAlchemy, and is now an external project. - See http://pypi.python.org/pypi/sqlsoup . - [ticket:2262] - -0.7.7 - 0.7.xx -============== +- sqlite -Changes which apply to 0.7.7 and subsequent versions of 0.7 -are listed in the CHANGES file within the 0.7 branch. All -those changes which are also in the 0.8 series (which is typically -all of them) are listed inline within the 0.8 changes above, -those which apply to an 0.7 release are noted. + - [feature] Added SQLite execution option + "sqlite_raw_colnames=True", will bypass + attempts to remove "." from column names + returned by SQLite cursor.description. + [ticket:2475] 0.7.6 ===== |